Si queremos conectarnos a un servidor de ssh puntualmente no es molestia escribir la contraseña al hacer login, sin embargo si queremos hacerlo automáticamente desde un script, cron, etc. no solo es molestia sino que puede ser imposible meter la contraseña. Para eso necesitamos crear una clave pública para autentificarnos. Lo haremos así, por supuesto en linux:
En local, generamos la clave:
$ ssh-keygen -t rsa
Aceptamos las opciones por defecto y se nos creará en nuestra home .ssh/id_rsa.pub
Ahora tendremos que subir ese archivo al servidor remoto con el usuario que queremos usar.
En el servidor remoto, copiaremos el contenido del archivo subido al archivo de claves autorizadas (si no existe se creará, aunque si no existe el directorio .ssh habrá que crearlo antes) Y le damos permisos solo al usuario.
$ cat id_rsa.pub >>~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/authorized_keys
Nota: ~ significa nuestro directorio home, este símbolo se consigue con la combinación de teclas «alt + 1, 2, 6«.
Ya podemos conectarnos por ssh sin que se nos pida password. También es válido para usar comandos que necesitan ssh como por ejemplo rsync.
Pingback: Carlos Egea » Blog Archive » Realizar copias de seguridad incrementales con rsync a un servidor remoto