Claves DSA para conectarse por ssh sin contraseña
November 11, 08 by Max Villegas
Cada vez administro más servidores Linux (ayer se sumaron dos más ubicados en Chicago), por lo que suelo conectarme todo el tiempo por SSH y, obvio, tengo teclear las contraseñas cada vez me conecto a una máquina, algo que realmente se ha vuelto tedioso. Por suerte se puede configurar SSH para que utilice certificados o claves DSA, de tal forma podremos autenticarnos automáticamente en el servidor.
Entonces generaremos las claves DSA usando el protocolo 2, que es el protocolo utilizado y recomendado hoy por hoy. Una de las claves generadas será la “clave privada” que quedará guardada en nuestra máquina y opcionalmente podrá ser protegida con una contraseña. La otra será la “clave pública” que es la que transferiremos al servidor remoto.
Para generar estas claves utilizamos el comando ssh-keygen:
traveler@talita:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/traveler/.ssh/id_dsa):
Created directory ‘/home/traveler/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/traveler/.ssh/id_dsa.
Your public key has been saved in /home/traveler/.ssh/id_dsa.pub.
The key fingerprint is:
b4:23:82:5a:19:5b:6f:f3:78:31:fb:f8:45:0b:ed:8f traveler@talita
En la pregunta “Enter file in which to save the key…” hagan enter para que tome el valor predeterminado, lo mismo pueden hacer cuando se les pregunte por la contraseña si no quieren proteger la clave privada con una password.
Una vez terminado el proceso en la carpeta ~/.ssh tendrán un nuevo archivo con la clave pública (id_dsa.pub) y otro con la clave privada (id_dsa). En este punto tendrán que transfierir la clave pública al servidor con el comando ssh-copy-id:
traveler@talita:~$ ssh-copy-id -i .ssh/id_dsa.pub traveler@talita
traveler@talita’s password:
Now try logging into the machine, with “ssh ‘traveler@talita’”, and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
Con esto ssh-copy-id habrá agregado la clave pública al archivo ~/.ssh/authorized_keys del usuario en el servidor remoto y la siguiente vez que nos conectemos la autenticación será automática sin necesidad de ingresar la contraseña nunca más.
Posts relacionados: