SISTEMA DE CLAVES PÚBLICA-PRIVADA SIN CONTRASEÑAS



Lo que vamos a explicar a continuación sirve para abrir conexiones ssh sin que se nos pidan contraseñas. Esto puede ser muy útil para automatizar copias de seguridad. Esto puede ser peligroso, y de hecho lo es, pero es mejor que almacenar las claves de los usuarios en texto plano en los scripts de automatización.

En una conexión ssh tendremos que configurar tareas en el equipo local (thishost) y en el remoto (remotehost).

TAREAS A REALIZAR EN EL EQUIPO LOCAL (thishost)



En primer lugar vamos a crear el par de claves pública-privada, para ello utilizaremos el comando:
$ ssh-keygen -t dsa -b 1024 -f /home/thisuser/keys/thishost-rsync-key
Este comando nos creará dos ficheros en nuestra carpeta keys que deberemos haber creado previamente. El comando nos pedirá dos veces la contraseña y como no queremos que tenga clave pulsamos <enter> dos veces. Hay que tener cuidado de que ningún otro usuario no autorizado tenga acceso a la clave pública (el fichero .pub).

Este fichero debe ser copiado en el directorio .ssh del home del usuario en remotehost para ser añadido en el fichero authorized-keys. Una forma sencilla de copiar ese fichero en el ordenador remoto es usar el comando scp.

TAREAS A REALIZAR EN EL EQUIPO REMOTO (remotehost)



En el ordenador remoto deberemos comprobar que exite el directorio oculto .ssh en la carpeta home del usuario que queremos que se conecte. Si no existe el directorio lo creamos:
$ mkdir .ssh
Y dentro de ese directorio añadimos el contenido del fichero de la clave pública al fichero authorized-keys con el siguiente comando:
$ cat thishost-rsync-key.pub >> authorized_keys