Comment copier des fichiers avec Rsync sur SSH
Étape 1 - Configurer les clés SSH publiques
Sur notre serveur d'origine, nous allons générer des clés SSH publiques sans mot de passe :
ssh-keygen -f ~/.ssh/id_rsa -q -P ""
cat ~/.ssh/id_rsa.pub
Ceci est notre clé SSH publique qui peut être placée sur d'autres hôtes pour nous donner accès :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVDBIpdpfePg/a6h8au1HTKPPrg8wuTrjdh0QFVPpTI4KHctf6/FGg1NOgM++hrDlbrDVStKn/b3Mu65//tuvY5SG9sR4vrINCSQF++a+YRTGU6Sn4ltKpyj3usHERvBndtFXoDxsYKRCtPfgm1BGTBpoSl2A7lrwnmVSg+u11FOa1xSZ393aaBFDSeX8GlJf1SojWYIAbE25Xe3z5L232vZ5acC2PJkvKctzvUttJCP91gbNe5FSwDolE44diYbNYqEtvq2Jt8x45YzgFSVKf6ffnPwnUDwhtvc2f317TKx9l2Eq4aWqXTOMiPFA5ZRM/CF0IJCqeXG6s+qVfRjB root@cloudads
Copiez cette clé dans votre presse-papiers et connectez-vous à votre serveur de destination.
Placez cette clé SSH dans votre fichier ~/.ssh/authorized_keys :
Si votre dossier SSH n'existe pas, créez-le manuellement :
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
Étape 3 - Synchroniser les fichiers
Rsync est un excellent utilitaire, car il vous permet, entre autres, de copier des fichiers de manière récursive avec compression, et sur un canal chiffré.
Nous allons copier un fichier de notre serveur d'origine (198.211.117.101) dans /root/bigfile.txt vers notre serveur de destination (IP : 198.211.117.129) et le sauvegarder également dans /root/bigfile.txt.
Connectez-vous sur 198.211.117.101 et synchronisez le fichier sur 198.211.117.129 :
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/bigfile.txt 198.211.117.129:/root/
Si vous utilisez un autre utilisateur, par exemple "nomdutilisateur", alors vous devrez l'ajouter devant le serveur de destination. Assurez-vous d'avoir votre clé publique dans le fichier ~/.ssh/authorized_keys de cet utilisateur :
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/bigfile.txt username@198.211.117.129:/
Les options SSH sont utiles pour garder Rsync silencieux et ne pas demander à chaque fois que vous vous connectez à un nouveau serveur.
Vérifiez que vous avez reçu le fichier sur le serveur de destination (198.211.117.129) :
ls -la /root/bigfile.txt
Et vous avez terminé !
