lunes, 29 de agosto de 2011

Conexión ssh sin pedir contraseña

En muchas ocasiones queremos automatizar procesos como un rsync o simplemente nos conectamos mucho de forma remota a otro servidor por ssh y queremos que no nos pida la contraseña en cada ocasión.

Este proceso es muy sencillo.

Creamos la clave en el servidor desde el que nos vamos a conectar:
ssh-keygen -t dsa -b 1024
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
45:45:45:45:45:45:45:45:45:2b:6e:57:8a:97:5d:11 root@servidor
The key's randomart image is:
+--[ DSA 1024]----+
|                 |
|       Se         |
|        .        |
|       . .       |
|    . . S        |
| o . odfg o         |
|o.O = .          |
|=sdf .           |
|*           |
+-----------------+
























Esta clave la tenemos que copiar al servidor al que nos vamos a conectar (por ejemplo por scp):
scp id_dsa.pub root@servidordestino:/tmp




Nos conectamos al servidor que va a recibir las conexiones y añadimos la clave al listado de autorizados:

cat /tmp/id_dsa.pub >> /root/.ssh/authorized_keys




A partir de este momento no nos debería pedir la contraseña.

Nota: comprueba que el archivo /etc/ssh/sshd_config contiene:
PubkeyAuthentication yes