Automatiser la Synchronisation entre Deux Serveurs avec rsync et SSH
Ce guide explique pas à pas comment synchroniser automatiquement un dossier entre deux machines (Machine A → Machine B) en utilisant rsync via une connexion sécurisée SSH.
Étape 1 : Générer une paire de clés SSH sur la Machine A
On crée une paire de clés (privée/publique) qui permettra à la Machine A de se connecter à la Machine B sans mot de passe.
Commande de génération
ssh-keygen -t rsa -b 4096 -C "votre_email@example.com"
-
-t rsa→ type de clé RSA. -
-b 4096→ longueur de clé (4096 bits, sécurisé). -
-C→ commentaire associé à la clé (souvent l’email).
Où sont créés les fichiers ?
-
Quand la commande te demande :
Enter file in which to save the key (/home/user/.ssh/id_rsa):-
Si tu appuies Entrée → les fichiers sont créés dans le chemin indiqué entre parenthèses (par défaut
~/.ssh/id_rsaet~/.ssh/id_rsa.pub). -
Si tu entres juste un nom (ex.
ma-cle) → les fichiers seront créés dans le dossier courant (./ma-cleet./ma-cle.pub). -
Si tu donnes un chemin complet (
~/.ssh/serveurX) → ils seront créés exactement là (~/.ssh/serveurXet~/.ssh/serveurX.pub).
-
👉 Bonne pratique : indiquer directement un chemin clair, par exemple :
ssh-keygen -t rsa -b 4096 -C "votre_email@example.com" -f ~/.ssh/machineB
Tu auras alors :
-
clé privée →
~/.ssh/machineB(à garder secrète, chmod 600). -
clé publique →
~/.ssh/machineB.pub(celle à partager).
Étape 2 : Copier la clé publique sur la Machine B
La clé publique doit être ajoutée dans le fichier ~/.ssh/authorized_keys de l’utilisateur cible sur la Machine B.
La commande la plus simple est :
ssh-copy-id -i ~/.ssh/machineB.pub user@100.100.10.100
Explications
-
-i ~/.ssh/machineB.pub→ précise explicitement quelle clé publique copier (important si tu en as plusieurs). -
user@100.100.10.100→ utilisateur et IP/nom de la Machine B. -
Cette commande va :
-
ouvrir une connexion SSH (tu devras saisir ton mot de passe une dernière fois)
-
créer
~/.ssh/authorized_keyssi besoin -
ajouter la clé publique à ce fichier.
-
Après ça, la Machine A pourra se connecter sans mot de passe.
Vérifier la connexion
Teste immédiatement :
ssh -i ~/.ssh/machineB user@100.100.10.100
Si tout est correct, tu entres directement sans mot de passe.
👉 Si tu as plusieurs clés sur ta Machine A, il est recommandé de préciser laquelle utiliser, soit avec -i, soit en configurant ~/.ssh/config :
Host machineB
HostName 100.100.10.100
User user
IdentityFile ~/.ssh/machineB
IdentitiesOnly yes
Tu pourras ensuite faire simplement :
ssh machineB
Étape 3 : Programmer la synchronisation avec cron et rsync
rsync permet de synchroniser efficacement un dossier d’une machine vers une autre.
Test manuel avant tout
rsync -avz --progress /srv/path/to/folder/ user@100.100.10.100:/srv/Folder/
-
-a→ mode archive (préserve permissions, liens, etc.). -
-v→ verbose, affiche les fichiers transférés. -
-z→ compresse les données pendant le transfert. -
--progress→ montre l’avancement.
⚠️ Vérifie bien que la commande fonctionne manuellement avant de l’automatiser.
Planification avec cron
Ouvre l’éditeur de tâches planifiées sur la Machine A :
crontab -e
Ajoute la ligne suivante pour exécuter la synchro chaque dimanche à 2h du matin :
0 2 * * 0 rsync -avz /srv/path/to/folder/ user@100.100.10.100:/srv/Folder/
-
0 2 * * 0→ tous les dimanches à 2h. -
Le chemin
/srv/path/to/folder/→ source sur Machine A. -
Le chemin
user@100.100.10.100:/srv/Folder/→ destination sur Machine B.
Étape 4 : Vérification
-
Lister les tâches cron actives :
crontab -l
-
Vérifier les logs (
/var/log/syslogoujournalctl -u cron) si la tâche ne tourne pas. -
Tester à la main :
rsync -avz --progress /srv/path/to/folder/ user@100.100.10.100:/srv/Folder/
✅ Résumé des bonnes pratiques
-
Toujours savoir où la clé est enregistrée lors de
ssh-keygen. -
Utiliser
-iavecssh-copy-idsi tu as plusieurs clés. -
Vérifier les permissions :
-
~/.ssh→chmod 700 -
clé privée →
chmod 600 -
clé publique →
chmod 644 -
authorized_keyssur Machine B →chmod 600
-
-
Toujours tester manuellement
rsyncavant de l’ajouter àcron.
👉 Avec cette méthode, ta Machine A synchronisera automatiquement son dossier vers la Machine B chaque semaine, de manière sécurisée et sans mot de passe.
No comments to display
No comments to display