Cuando tenemos que conectarnos habitualmente a un servidor Linux mediante SSH puede resultar muy tedioso tener que escribir la contraseña en cada sesión. Por este motivo hoy os presentamos un mini-tutorial para evitar este paso y así ahorrar en tiempo y frustraciones.
Lo primero que tenemos que hacer es generar un conjunto de claves de cifrado asimétrico empleando el algoritmo RSA. Abrimos una terminal y escribimos lo siguiente:
ssh-keygen
Después pulsamos Intro. A continuación nos pide que introduzcamos una passphrase para el conjunto de claves. La passphrase protege tu clave privada en caso de que se vea comprometida (ver Nota2). No obstante, para este tutorial no vamos a usar ninguna (ver Nota1 para identificación automática con passphrase).
Tras hacer esto vamos a:
cd .ssh/
Este directorio contiene el par de claves que acabamos de generar: id_rsa e id_rsa.pub. Tenemos que subir al servidor de destino la parte pública de la clave, es decir, id_rsa.pub.
Usamos el comando scp para copiar el archivo de su ubicación local a una carpeta temporal del servidor mediante SSH.
scp id_rsa.pub usuario_servidor@direccion_servidor.com:/tmp
Conectamos al servidor mediante ssh.
ssh usuario_servidor@direccion_servidor.com
Tras introducir nuestra clave nos movemos hasta este directorio:
cd .ssh/
Añadimos nuestra clave pública al listado de claves autorizadas y después borramos el archivo de clave pública de su ubicación temporal:
cat /tmp/id_rsa.pub >> authorized-keys
rm /tmp/id_rsa.pub
Cerramos la sesión SSH escribiendo exit. Iniciamos una nueva sesión, y si todo ha ido bien no tendremos que introducir nuestra contraseña otra vez.
NOTA1: Si queremos tener seguridad adicional utilizaremos una passphrase compleja para la parte privada de nuestra clave. Para no tener que escribir esta passphrase cada vez que nos identificamos podemos utilizar el programa ssh-agent.
NOTA2: Nuestras claves se pueden ver comprometidas si alguien tiene acceso a físico a nuestro ordenador y consigue copiar los archivos de claves. También se pueden ver comprometidas si un usuario malintencionado aprovecha algún fallo de seguridad del sistema operativo para obtener privilegios de administrador y obtener los archivos de claves. Por lo tanto, hay que ponderar los riesgos y las ventajas que nos aporta la identificación automática, y tomar la decisión que más nos convenga.
Más adelante publicaremos otro mini-tutorial sobre cómo configurar MySQL Workbench para acceder a una base de datos remota mediante SSH sin tener que introducir ninguna clave.



Muy bueno el artículo. Solo comentar qué, en mi caso (ubuntu 10.04) al no estar creada la carpeta .ssh en mi home no se generaba el fichero (tampoco daba error). Una vez creas el directorio, todo va según lo descrito.
gracias!