Utiliser rsync via ssh sans saisir de mot de passe

Pour effectuer une synchronisation de fichiers entre deux machines, il est possible d’utiliser les programmes rsync et ssh.

Test de la commande rsync avec un mot de passe

On créé au préalable un utilisateur mysuer sur la machine distante, avec des droits de connexion via ssh.

On teste rsync avec la commande suivante (qui doit normalement demander le mot de passe de myuser avant de s’exécuter) :

rsync -avz -e ssh /home/myuser/ myuser@192.168.200.10:/mydirectory/

Création de la clé publique sur la machine locale

On utilise la commande suivante :

ssh-keygen -t rsa -b 1024

Avec les options :

  • -t : pour indiquer le suffixe du fichier de sortie,
  • -b : pour indiquer le nombre de bits d’encodage.

Création du répertoire .ssh s’il n’existe pas

On créée le dossier .ssh puis le fichier authorized_keys en leur attribuant les droits en écriture de la manière suivante :

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys

Copie de la clé publique sur l’hôte distant

On utilise le script ssh-copy-id pour effectuer la copie sur la machine distante :

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10

La copie peut également être réalisée via SCP ou FTP.

Ajout de la clé publique aux clés autorisées

cat id_rsa.pub >> ~/.ssh/authorized_keys

On peut ensuite supprimer le fichier id_rsa.pub.

On peut dorénavant exécuter la commande rysnc initiale sans saisir le mot de passe.

Sources

Publicités