SSH y rsync sin contraseña

Estuve retrasando un buen tiempo el asunto de crear los respaldos de toda la información (bases de datos, documentos y por supuesto ¡el blog!) porque requería hacer un estudio en profundidad de cómo conectarme a otra máquina sin que solicitase contraseña, para poder programar un respaldo madrugador y sin intervención humana. Eso iba a ser aproximadamente nunca, si no fuese porque conseguí un sitio donde explican brevemente cómo hacerlo.

Con fines "filantrópicos" (más bien mnemotécnicos), relataré aún más brevemente el asunto y en cristiano, por si puede servirle a alguien.

Lo primero es que en ambas máquinas, la que origina la conexión (digamos UNO) y la que la recibe (digamos DOS) deben disponer de una instalación funcional de SSH (Secure SHell, en debian se trata de OpenSSH). El usuario que origina la conexión debe tener un directorio .ssh, al igual que el usuario de destino. A continuación, los tres pasos para que se dé la conexión sin explicitar contraseña:

  1. En la máquina UNO, se genera un par de claves, en el directorio .ssh con esta orden: ssh-keygen -t dsa -f id_dsa -P ' ' (eso último son dos comillas simples); esto genera dos archivos id_dsa y id_dsa.pub que corresponden a cada clave.
  2. Se copia la clave pública en la máquina DOS, en el directorio .ssh del usuario destino: scp id_dsa.pub usuariodestino@maquinaDOS:.ssh/
  3. En la máquina DOS se agrega la clave pública recién copiada a la lista de claves autorizadas: cat id_dsa.pub >> authorized_keys2

El paso siguiente es probar que funciona. Para realizar un respaldo automático se debe tener en primer lugar un libreto (script) con la o las órdenes correspondientes, incluyendo los nombres de la máquina y el usuario de destino. Algo como esto: rsync -avzt /home/usuario1 usuario2@maquinaDOS:/respaldos/. Una vez guardado y hecho ejecutable, es sólo cuestión de añadir una línea en el archivo de p.e. /etc/cron.d/tareasdiarias, que debe lucir algo así: 10 4 * * * usuario1 /usr/local/bin/respaldoEnMaquinaDOS para que ejecute el libreto todos los días a las cuatro y 10 a.m.