Generar y añadir claves SSH (para acceso sin contraseña)

Para continuar con nuestros artículos sobre ssh vamos a mostraros la manera de generar claves ssh y configurar el servidor ssh para no necesitar poner nuestra contraseña cada vez que nos conectemos. Esto nos servirá en el caso de que hagamos muchas conexiones ssh durante el día a la misma máquina (que nos ahorrará el tener que estar poniendo la contraseña todo el rato), scripts que se conecten automáticamente a servidores ssh para tareas programadas o cosas similares, etc.

 

Para generar una clave ssh tendremos que escribir el siguiente comando en consola:

ssh-keygen

Nos preguntará un nombre para el archivo de la clave, si lo dejamos vacío nos pondrá el nombre por defecto (id_rsa). También nos preguntará por una passphrase (clave de acceso), para mayor seguridad.

 

Después tenemos que añadir la clave que hemos creado en el servidor ssh. Para ello copiamos el archivo que se ha generado con la clave pública en la carpeta .ssh del servidor al que queremos acceder sin contraseña. Podemos copiar el archivo de diferentes maneras, nosotros lo haremos con scp que es una manera de copiar archivos via ssh:

scp id_rsa.pub <usuario>@<servidor-ssh>:/home/<usuario>/.ssh/

 

Una vez copiado el archivo, accedemos a la máquina con el servidor ssh, y dentro de la carpeta .ssh creamos el documento authorized_keys y le añadimos el contenido del archivo con la clave pública:

touch authorized_keys

cat id_rsa.pub >> authorized_keys

 

Ahora, cuando queramos acceder al servidor ssh nos pedirá la passphrase, pero podemos hacer que nuestra máquina guarde esta clave y que no tengamos que escribirla cada vez. Para ello solamente tenemos que ejecutar los siguientes comandos en la máquina cliente:
ssh-agent
ssh-add

Cuando ejecutemos el ssh-add nos pedirá la passphrase por última vez, que tendremos que escribir y ya podremos acceder por ssh al servidor que hayamos configurado sin necesidad de escribir la contraseña ni la passphrase.

Si ssh-add no funciona, deberemos ejecutar el siguiente comando: eval "$(ssh-agent)" Con el que debería solucionarse el problema.

 

Con estos sencillos pasos ya tendríamos nuestra clave ssh metida en el servidor ssh de manera que podríamos acceder sin necesidad de escribir la contraseña.

 

¡¡¡IMPORTANTE!!!

El crear una clave ssh implica que todo el que posea el archivo generado con la clave podrá acceder al servidor ssh sin contraseña. Por lo tanto tendremos que tener especial cuidado con el archivo que generemos, donde lo almacenamos, si lo compartimos y esas cosas.

En casos específicos y concretos puede ser interesante, pero lo recomendable es dejar el funcionamiento de ssh como está, ya que es la manera más segura.

 

 

3 comentarios

  1. Burgos

    Gracias por compartir conocimiento, el artículo es perfecto, todo muy bien explicado.

    Un saludo 🙂

  2. Ping : Configurant RSYNC III « Coses que passen

Dejar un comentario