Como crear llaves SSH

Lo primero, será crear la llave entre mi equipo y un equipo remoto.
En mi equipo y en el equipo remoto, mi usuario es el mismo.
Para ello ejecuté en mi equipo, lo siguiente:

metano:~ $ ssh-keygen -t dsa

Aquí presioné <enter> para aceptar el fichero en donde se guardará la llave publica (a menos que especifique la opción -f <nombre-archivo>), luego digite la frase del certificado dos veces, esta se debe escribir solo una vez por sesión en cada terminal. Puede dejar en blanco la frase, aunque no es recomendable.

¿Para que es la frase?, es para un nivel extra de seguridad, si escribimos una frase, la frase es pedida solo una vez por consola para todas las conexiones SSH a la/las maquina/s que ocupen dicha llave en esa terminal. El no escribir una frase, no existirá esta petición. Y si su certificado es comprometido, las máquinas que utilicen ese certificado para autenticar, estarán en un grave riesgo.

Tenemos ahora nuestra llave creada, y tenemos que copiar la llave publica al equipo remoto, para ello lo más simple es ejecutar:
(Si copias el archivo id_dsa.pub con scp, ten presente que si existe el archivo lo sobre-escribirás.)

metano:~ $ cat ~/.ssh/id_dsa.pub |
ssh equipo_remoto 'mkdir -p ~/.ssh; cat - >> ~/.ssh/authorized_keys2'

Con esto, la llave publica es enviado por ssh directamente al fichero de llaves publicas de mi cuenta en el equipo remoto. Desde ahora las conexiones SSH entre mi portátil y el equipo remoto serán sin claves.

Si una conexión SSH te pide la contraseña, lo más probable es que los permisos del archivo authorized_keys2 están incorrectos. Para solucionar este problema, basta cambiar los permisos a 644 (rw-r–r–).

metano:~ $ ssh equipo_remoto 'chmod 644 ~/.ssh/authorized_keys2'

Ahora nos preocuparnos que la llave privada no sera leída por nadie más.

metano:~ $ chmod 600 ~/.ssh/id_dsa

Listo! 🙂


Ahora bien, cambiamos la idea. Tenemos muchos computadores distintos con una cuentra centralizada, o sea, mis archivos son montados en todos los equipos en donde yo me conecte.
(Por ejemplo el LabComp)

Pues ahora, nos conectaremos a una de las máquinas remotas (ssh2.inf.utfsm.cl para el LabComp)
Conectado al laboratorio ejecuté el comando:

ssh2:~ $ ssh-keygen -f laboratorio

Escribimos la frase del certificado 2 veces, como se explica anteriormente.

Con la llave creada, ahora agregamos la llave publica al fichero ~/.ssh/authorized_keys2

ssh2:~ $ mkdir -p ~/.ssh
ssh2:~ $ cat ~/.ssh/laboratorio.pub >> ~/.ssh/authorized_keys2

Ahora, los permisos.

ssh2:~ $ chmod 600 ~/.ssh/laboratorio
ssh2:~ $ chmod 644 ~/.ssh/authorized_keys2

Con esto, no me pedirá contraseña para conectarme entre cualquiera de las máquina del laboratorio.

¿Y porque esa locura de dejar una conexión sin clave?
Porque nadie más que yo utiliza mi equipo, y es aqui donde yo pongo restricciones. 🙂

Comments

2 responses to “Como crear llaves SSH”

  1. […] Es entonces, cuando seguí el procedimiento que dejé aquí. […]

  2. RNT Avatar

    Una pequeña actualización.
    🙂

Leave a Reply to Llaves SSH at Renato Covarrubias Romero Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.