Linux: Sincronizando directorios con Rsync sin utilizar contraseña

Linux: Sincronizando directorios con Rsync sin utilizar contraseña

Linux: Sincronizando directorios con Rsync sin utilizar contraseña

  • Autor: fjavimartin

  • Fecha de Creación: 28/11/2018

  • Categorías:

    • Linux,
    • Rsync,
    • Ubuntu

El objetivo del tutorial de hoy será crear nuestra propia clave para poder sincronizar un directorio de nuestra máquina local con otro ubicado en un servidor mediante rsync.

Una de las tareas muy repetitivas que hago cuando estoy realizando algún desarrollo web es la de sincronizar los directorios del proyecto que tengo en mi máquina local, normalmente gestionando versiones con GIT, con los del servidor de pruebas.

Cada vez que lanzo el script de sincronización me pide la contraseña del usuario del servidor remoto con el que estoy sincronizando por lo que para evitar introducir la contraseña vamos a crear un fichero con una clave que alojaremos en el servidor remoto para evitar tener que introducir la contraseña cada vez que sincronicemos.

1. Crear la clave

Para crear la clave utilizaremos el siguiente comando:

usuario@equipo:~$ ssh-keygen -t rsa -N "faculty internal plume rancid paranoia bromidic" -f paxworkkeyfile_rsa
Generating public/private rsa key pair.
Your identification has been saved in paxworkkeyfile_rsa.
Your public key has been saved in paxworkkeyfile_rsa.pub.
The key fingerprint is:
SHA256:cEBbmYz3qhjgurQw+qkqW7GhRjacbwwTXezJ3oF9giE usuario@equipo
The key's randomart image is:
+---[RSA 2048]----+
|    .ooo.o       |
|  .E.o.+=        |
| . .+ O...       |
|. +  * * ..      |
| Xo.. . S.       |
|o.B+.. ..        |
|++o+ o .         |
|Boo.. .          |
|O*o              |
+----[SHA256]-----+
usuario@equipo:~$ 

Dado que tengo muy mala imaginación para las passphrase utilizaré la siguiente web para generar una:

https://www.fourmilab.ch/javascrypt/pass_phrase.html

Los parámetros utilizados son muy sencillos:

-t rsa → Seleccionamos el algoritmo con el que generar nuestra clave.

-N “nuestra passphrase” → Passphrase que utilizaremos para generar la clave.

-f nombreficherosalida → Nombre del fichero con la clave.

Si todo ha ido bien tendremos en nuestro directorio dos ficheros nuevos, uno con la clave privada y otro con la clave pública:

usuario@equipo:~$ ls -ltr *pax*
-rw-r--r-- 1 usuario usuario  398 nov 27 14:48 paxworkkeyfile_rsa.pub
-rw------- 1 usuario usuario 1766 nov 27 14:48 paxworkkeyfile_rsa
usuario@equipo:~$ 

El siguiente paso será moverlas al directorio .ssh de nuestro home que será donde estén todas las claves:

usuario@equipo:~$ cp  *pax* ./.ssh/

2. Copiar la clave pública al servidor

Con nuestras claves generadas nos quedará copiar nuestra clave pública en el servidor, una vez más en el directorio .ssh del home de nuestro usuario:

usuario@equipo:~/.ssh$ ssh-copy-id -i ./paxworkkeyfile_rsa.pub usuario@tuservidor
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "./paxworkkeyfile_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
usuario@tuservidor's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'usuario@tuservidor'"
and check to make sure that only the key(s) you wanted were added.

usuario@equipo:~/.ssh$ 

Con este comando lo que hacemos es añadir la clave que acabamos de generar al fichero: /home/usuario/.ssh/authorized_keys

De esta manera cada vez que nos conectemos por ssh a nuestro servidor no nos volverá a pedir contraseña.

3. Sincronización de carpetas

Os dejo el comando que utilizo para sincronizar carpetas con el servidor:

rsync -avhe ssh --delete /home/usuario/carpeta_origen/ usuario@servidor:/home/usuario/carpeta_destino/

A disfrutar!!!!!!!

Referencias

https://www.atareao.es/ubuntu/sincronizacion-sin-contrasena-en-linux/

http://www.linuxproblem.org/art_9.html

Todos los Derechos Reservados © 2016

Funciona con Drupal