ORIGEN:

http://es.wikipedia.org/wiki/SSH

FECHA:

6-3-2007

-------------------------

 

Secure Shell

De Wikipedia, la enciclopedia libre

(Redirigido desde SSH)
Tecnologías y protocolos de red*
Nivel de aplicación DNS, FTP, HTTP, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIP, ver más
Nivel de presentación ASN.1, MIME, SSL/TLS, XML, ver más
Nivel de sesión NetBIOS, ver más
Nivel de transporte SCTP, SPX, TCP, UDP, ver más
Nivel de red AppleTalk, IP, IPX, NetBEUI, X.25, ver más
Nivel de enlace ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STP, ver más
Nivel físico Cable coaxial, Cable de fibra óptica, Cable de par trenzado, Microondas, Radio, RS-232, ver más
* según el Modelo OSI

SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo el ordenador mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X arrancado.

Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.

Tabla de contenidos

[editar] Seguridad

SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible y ninguna tercera persona pueda descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos.

[editar] Historia

Al principio sólo existían los r-commands, que eran los basados en el programa rlogin, el cual funciona de una forma similar a telnet.

La primera versión del protocolo y el programa eran libres y los creó un finlandés llamado Tatu Ylönen, pero su licencia fue cambiando y terminó apareciendo la compañía `SSH Communications Security', que lo ofrecía gratuitamente para uso doméstico y académico, pero exigía el pago a otras empresas. En el año 1997 (dos años después de que se creara la primera versión) se propuso como borrador en la IETF.

A principios de 1999 se empezó a escribir una versión que se convertiría en la implementación libre por excelencia, la de OpenBSD, llamada OpenSSH.

[editar] Manejo de SSH

(ejemplificado en un sistema Debian 3.1 GNU/Linux)

El protocolo SSH cuenta con dos versiones. La primera de ellas se mantiene por motivos de compatibilidad, pero se recomienda generalmente el uso de la segunda, por su mayor seguridad. OpenSSH es una implementación, usable en sistemas Linux, de cliente y servidor para estos protocolos, la versión disponible para Debian permite usar tanto SSH1 como SSH2.


Tal como se describe en uno de los borradores de la especificación temporal "SSH Protocol Architecture" (http://www.ietf.org/internet-drafts/draft-ietf-secsh-architecture-13.txt) ssh es un protocolo para iniciar sesiones en máquinas remotas que ofrece autenticación, confidencialidad e integridad. Consta de tres componentes:


Protocolo de transporte: Que normalmente opera sobre TCP/IP dando autenticidad, confidencialidad e integridad.

Protocolo de autenticación de usuario: Que autentica al usuario ante el servidor.

Protocolo de conexión: Que multiplexa un canal cifrado en diversos canales lógicos.


Este protocolo requiere que los servidores tengan "llaves", las cuales son usadas por los clientes cada vez que se conectan a un servidor para verificar que no fue suplantado. Una llave es un número codificado y cifrado en un archivo. Para el cifrado de llaves, OpenSSH ofrece los algoritmos RSA y DSA (de los cuales para la versión 2 recomendamos DSA).


Para instalar un servidor OpenSSH, que le permita conectarse a su sistema de forma segura, instale el paquete ssh preferiblemente tomando la versión más reciente del sitio de seguridad de Debian: http://security.debian.org/ o compile las fuentes más recientes que puede obtener en http://www.openssh.org/. Cuando instale se generarán un par de "llaves" para su computador, una pública y una privada. Una vez instalado podrá afinar la configuración del servidor en el archivo /etc/ssh/sshd_config que puede incluir líneas como las siguientes:


PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
RhostsAuthentication no
hostsRSAAuthentication no
HostbasedAuthentication no
X11Forwarding yes 

La última línea permitirá a los clientes que se conecten ejecutar aplicaciones de X-Window y transmitir la información gráfica sobre la conexión segura.


Un usuario también puede crear un par de llaves que le faciliten su autenticación al emplear ssh o scp. Estos programas por defecto piden clave al usuario que se conecte a un servidor SSH. Si un usuario genera sus llaves pública y privada, puede saltarse esta autenticación pues se hará de forma automática con las llaves. Para lograrlo su llave pública debe estar en el computador al cual se conecta (en ~/.ssh/authorized_keys) y su llave privada en el computador desde el cual se conecta (normalmente en ~/.ssh/id_dsa).


La generación de llaves puede hacerse con:


ssh-keygen -t dsa


que por defecto dejará su llave pública en ~/.ssh/id_dsa.pub y su llave privada en ~/.ssh/id_dsa (que además quedará protegida por una palabra clave que usted especifica). Como el nombre lo indica la llave privada no debe compartirla, por el contrario la llave pública puede transmitirla y puede ser vista por cualquiera.


En el computador en el que desee conectarse, agregue en el archivo ~/.ssh/authorized_keys (o ~/.ssh/authorized_keys2 si usa DSA y una versión de OpenSSH anterior a la 3.1), su llave pública. Por ejemplo el usuario mario desde purpura.micolegio.edu.co puede configurar la entrada con autenticación automática a la cuenta pepe en amarillo.micolegio.edu.co con:


purpura> scp ~/.ssh/id_dsa.pub amarillo.micolegio.edu.co:/home/pepe/id_dsa_mario.pub 
purpura> ssh -l pepe amarillo.micolegio.edu.co
...
amarillo> cat id_dsa_mario.pub >> ~/.ssh/authorized_keys
  

Cuando mario se intente conectar desde purpura, a la cuenta pepe en amarillo ya no tendrá que dar la clave de pepe en ese computador sino la palabra clave con la que protegió su llave privada. Incluso esta palabra clave puede darse una sola vez, aún cuando se realicen diversas conexiones con:


purpura> ssh-agent bash
purpura> ssh-add mario


Tras lo cual mario tecleará una vez la palabra clave de su llave privada, y después en esa sesión de BASH todo ingreso que haga a la cuenta pepe en amarillo, no solicitará clave alguna.

[editar] Fuente

[editar] Enlaces externos


Ver También: Informática