La popularidad de ssh ha llegado a tal punto que el servicio telnet prácticamente no se utiliza. Se recomienda no utilizar nunca telnet y utilizar ssh en su lugar.
Para que un usuario se conecte a un sistema mediante ssh, deberá disponer de un cliente ssh. Desde la primera conexión, y mediante encriptación asimétrica, las comunicaciones se encriptan incluido el proceso de autentificación del usuario cuando proporciona su nombre y su contraseña. También se proporciona una clave de encriptación simétrica para encriptar las comunicaciones del resto de la sesión mediante encriptación simétrica por su menor necesidad de procesamiento.
// Instalación de servidor ssh y cliente sshroot@cnice-desktop:# apt-get install ssh
Los archivos de configuración son:
// Iniciar o Reiniciar el servidor sshroot@cnice-desktop:# /etc/init.d/ssh restart
// Parar el servidor sshroot@cnice-desktop:# /etc/init.d/ssh stop
Para un arranque automático del servicio al iniciar el servidor, debemos crear los enlaces simbólicos correspondientes tal y como se indica en el apartado Arranque automático de servicios al iniciar el sistema.
// Conexión por sshjessica@aula5pc3:~$ ssh 192.168.1.239 The authenticity of host '192.168.1.239 (192.168.1.239)' can't be established. RSA key fingerprint is 51:70:3f:9c:ac:49:52:74:88:f5:45:a6:ae:f0:9c:8a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.239' (RSA) to the list of known hosts. Password: // Introducir contraseña de jessica jessica@cnice-desktop:~$ // Ya estámos en el servidor
La primera vez que se conecte alguien desde dicho PC cliente, se instalará el certificado de autentificación del servidor, lo cual es normal si se trata de la primera vez. A la pregunta 'Are you sure you want to continue connecting (yes/no)?' debemos responder 'yes' ya que de lo contrario la comunicación se cortará. Si ya nos hemos conectado anteriormente otras veces y vuelve a realizar ésta pregunta, significa que alguien se está haciendo pasar por el servidor (nuestro servidor ha sido hackeado) o que se ha reconfigurado el servidor (cambio de nombre, IP, etc...)
Si deseamos conectarnos al servidor utilizando un nombre de usuario diferente, debemos incluir el nombre de usuario antes del nombre o IP del servidor y separado por una arroba '@'. Ejemplo, supongamos que jessica, desde el PC llamado aula5pc3, quiere conectarse como miguel al servidor cuya IP es 192.168.1.239:
// Conexión por ssh como otro usuariojessica@cliente:~$ ssh miguel@192.168.1.239 Password: // Introducir contraseña de miguel en el servidor miguel@servidor:~$ // Ya estámos en el servidor como miguel
Desde PCs con Windows es posible conectarse por ssh a servidores Linux mediante el programa Putty. Se trata de un cliente ssh para Windows que permite acceder en modo texto al sistema Linux desde sistemas Windows.
// Habilitar la redirección X en /etc/ssh/sshd_configX11Forwarding yes
Ejemplo: supongamos que en nuestro terminal tenemos Damn Small Linux (que no dispone del gimp) y deseamos conectarnos a otro PC que sí que tiene instalado el editor gráfico gimp, los pasos que haremos serán:
// Ejecutar aplicaciones gráficasjessica@cliente:~$ ssh -X cnice@192.168.1.239 // -X para redirigir Xwindows. cnice@cnice-desktop:~$ gimp // Ejecutamos el gimp
El resultado será que desde nuestro Linux sin gimp estamos manejando el gimp que se está ejecutando en el PC remoto:
Desde PCs con Windows es posible conectarse por ssh a servidores Linux de forma gráfica mediante Cygwin. Se trata de un conjunto de programas libres que simulan un 'Unix para Windows' con servidor gráfico X y cliente ssh para Windows entre otras cosas, que permite acceder en modo gráfico al sistema Linux desde sistemas Windows. Otros servidores X gratuitos para Windows son Xming y Mocha.
El cliente ftp seguro es el comando sftp que funciona igual que el comando ftp. También podemos utilizarlo desde un navegador como Konqueror escribiendo sftp://nombre-del-usuario@nombre-del-servidor por ejemplo en la url: sftp://miguel@www.ieslapaloma.com
// Copiar un archivo del servidor a nuestro PCroot@cliente:~# scp jessica@192.168.1.239:/etc/hosts . Password: // Introducimos la contraseña de jessica en el servidor hosts 100% 443 0.4KB/s 00:00 // Archivo copiado root@cliente:~#
// Copiar un archivo de nuestro PC al servidor
// La carpeta de destino debe existir en el servidorroot@cliente:~# scp miarchivo.txt jessica@192.168.1.239:/home/jessica/pruebas/ Password: // Introducimos la contraseña de jessica en el servidor miarchivo.txt 100% 443 1.6KB/s 00:00 // Archivo copiado root@cliente:~#
// Copiar una carpeta y subcarpetas de nuestro PC al servidorroot@cliente:~# scp -r /datos/*.* jessica@192.168.1.239:/pruebas/datos/ Password: // Introducimos la contraseña de jessica en el servidor datos/*.* 100% 443 50.6KB/s 00:03 // Archivos copiados root@cliente:~#
Desde PCs con Windows es posible utilizar el programa WinSCP que permite copiar archivos desde y hacia el servidor. Se trata de un cliente que utiliza el protocolo ssh para acceder al sistema de archivos del servidor Linux desde sistemas Windows.
Para que el servidor ssh acepte la autentificación por medio de certificado, deberá tener activada la opción PubkeyAuthentication yes, es decir, deberá tener el siguiente parámetro en el archivo de configuración /etc/ssh/sshd_config:
// Permitir autentificación por certificadoPubkeyAuthentication yes
// Creación de un certificadomiguel@cliente:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/miguel/.ssh/id_rsa): // Archivo del certificado. Podemos dejar el que viene por defecto Created directory '/home/miguel/.ssh'. Enter passphrase (empty for no passphrase): // Opcional Enter same passphrase again: Your identification has been saved in /home/miguel/.ssh/id_rsa. Your public key has been saved in /home/miguel/.ssh/id_rsa.pub. The key fingerprint is: c8:a4:fe:0c:19:78:8e:7d:05:5b:13:df:37:17:e8:ea miguel@dsl.ieslapaloma.com miguel@dsl:~$
// Copia del certificado y prueba de la conexión // Nota: el símbolo ~ en Linux es la carpeta home del usuariomiguel@cliente:~$ scp ~/.ssh/id_rsa.pub miguel@servidor:~/.ssh/authorized_keys Password: // Va a ser la última vez que introduzcamos la contraseña id_rsa.pub 100% 242 0.2KB/s 00:00 // Copiado miguel@cliente:~$ ssh miguel@servidor // Probamos la conexión miguel@servidor:~$ // Ya estamos en el servidor sin necesidad de contraseña