SSH es un método de conexión remota a servidores. Sin embargo en ocasiones necesitamos ingresar desde nuestro equipo a varios servidores remotos y no deseamos utilizar las claves complejas que creamos para nuestro usuario:

$ ssh mmejia@192.168.0.10 
mmejiav@192.168.0.10’s password: V&9Qlil&dzTnvd&H

La buena noticia es que existen formas de permitir el acceso sin preocuparse por estar escribiendo complicadas claves en ocasiones difíciles de memorizar. El método que intentare explicar es llamada criptografía asimétrica.

Como hacerlo

1.Generando la llave de autenticación.

En la máquina cliente (máquina personal), el usuario debe generar un par de llaves publica / privada que lo identificaran a si mismo en los servidores. Puede así mismo elegir si ser protegida con clave o no.

Al dejar la llave sin clave cualquiera que tenga acceso al archivo de la llave (por ejemplo root en la máquina del cliente) obtendría el mismo nivel de acceso que el usuario y no se le preguntaría ninguna clave cuando el cliente intente conectarse al servidor.

Protegiendo las llaves con clave significa que cada vez que el usuario intenta conectarse al servidor con su llave personal la clave para descifrarla es preguntada.

Para generar el par de llaves ejecutamos:

~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mmejiav/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mmejiav/.ssh/id_rsa.
Your public key has been saved in /home/mmejiav/.ssh/id_rsa.pub.
The key fingerprint is:
de:32:99:54:12:92:1b:5b:4e:da:68:e2:10:b1:cb:b0 mmejiav@feroz
The key\'s randomart image is:
+--[ RSA 2048]----+
|  ..  ...        |
|  ..  o.o.       |
|. ..   @. .      |
| +... * oo       |
|E oo o  S        |
|    .  o +       |
|        * .      |
|         o       |
|                 |
+-----------------+

En este ejemplo dejé el directorio y archivo por defecto y escribí una clave a ser utilizada como explique antes.

2.Instalar la llave publica en los servidores

SSH usualmente viene con una utilidad llamada ssh-copy-id que sencillamente adiciona el contenido de ~/.ssh/id_rsa.pub del cliente a la localización ~/.ssh/authorized_keys en el servidor.

Una vez que la llave publica es instalada en el servidor, el acceso es concedido sin pregunta de clave.

El paso es copiar la llave antes generada en el servidor al cual queremos ingresar.

$ ssh-copy-id -i .ssh/id_rsa.pub mmejiav@ip-server-remoto
mmejiav@ip-server-remoto\'s password:

Now try logging into the machine, with \"ssh \'mmejiav@ip-server-remoto\'\", and check in:

.ssh/authorized_keys

to make sure we haven\'t added extra keys that you weren\'t expecting.

En este punto la clave de acceso al servidor remoto es necesario.

Otra opción es copiar la llave generada en el primer paso en el servidor remoto con el comando scp.

En dicho caso se debe copiar el archivo id_rsa.pub en el servidor y agregar el contenido de dicho archivo en el final del archivo authorized_keys.

#cat id_rsa.pub >> .ssh/authorized_keys

Conclusión

Este método simplifica bastante la forma de conectarse a multiples servidores remotos sin utilizar claves complejas.

Como punto adicional puedes crear un alias en tu sistema de forma tal que te puedas conectar con un comando breve

Y listo