Cuando nos conectamos habitualmente por medio de SSH a un servidor, resulta muy cómodo no tener que insertar la contraseña cada vez que lo hacemos. O, por ejemplo, a la hora de automatizar ciertas tareas, como rsync, es indispensable.

 

Una manera de autenticarnos con el que no requiere que introduzcamos una contraseña es el uso de firmas digitales. Lo que hacemos en este caso es generar un par de llaves (una llave pública y una llave privada), y agregar nuestra llave pública a la lista de llaves autorizadas en el servidor al que queremos poder conectarnos.

Lo primero que hacemos es crear un par de llaves en la computadora que va a acceder al servidor de SSH:

ssh-keygen -t rsa -b 2048 

Estro creará dos archivos, uno llamado id_rsa que es nuestra llave privada, y uno llamado id_rsa.pub que es nuestra llave pública. Después de esto, solo necesitamos agregar nuestra llave privada a la lista de llaves autorizadas en el servidor de SSH. Este archivo se encuentra en ~/.ssh/authorized_keys

Una manera de hacer esto es simplemente subir el archivo id_rsa.pub al servidor, y entonces concatenar el contenido de este archivo en el archivo ~/.ssh/authorized_keys.

scp ~/.ssh/id_rsa.pub usuario@equiporemoto:~/
ssh usuario@equiporemoto
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub

Otra manera de hacerlo es juntar los comandos en un solo comando:

cat ~/.ssh/id_rsa.pub | ssh usuario@equiporemoto 'ls -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys' 

Una vez hecho esto, no olvides darle a esta carpeta y a este archivo los permisos apropiados, de otra manera otro usuario en el mismo sistema que tu podría agregar una llave a tu archivo de llaves permitidas y podría entonces conectarse como tu por medio de SSH.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Y Listo, ahora si hacemos un ssh al equipo remoto, ya no nos va a solicitar la contraseña.

 

Fuente: http://www.jveweb.net
Joomla templates by a4joomla