Automatiser la Synchronisation entre Deux Serveurs avec rsync et SSH AVEC VERSIONING
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_rsa
et~/.ssh/id_rsa.pub
). -
Si tu entres juste un nom (ex.
ma-cle
) → les fichiers seront créés dans le dossier courant (./ma-cle
et./ma-cle.pub
). -
Si tu donnes un chemin complet (
~/.ssh/serveurX
) → ils seront créés exactement là (~/.ssh/serveurX
et~/.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_keys
si 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/syslog
oujournalctl -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
-i
avecssh-copy-id
si tu as plusieurs clés. -
Vérifier les permissions :
-
~/.ssh
→chmod 700
-
clé privée →
chmod 600
-
clé publique →
chmod 644
-
authorized_keys
sur Machine B →chmod 600
-
-
Toujours tester manuellement
rsync
avant 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.