Sauvegarde via rsync et Ssh
Pour synchroniser le contenu de deux machines, la commande rsync associée à SSH est particulièrement recommandée.
Pré-requis
Vous devez avoir installé sur vos deux machines les paquets :
- openssh-server (par défaut sur CentOS, Fedora et Red Hat)
- rsync
- openssh-clients
Sur les environnements Red Hat like, pensez à désactiver selinux en passant la directive SELINUX à disabled au niveau du fichier /etc/selinux/config. Pour que la modification soit prise en compte, vous devez taper à partir de la ligne de commande : setenforce 0.
Création du jeu de clés
Le jeu de clés privée/publique se crée à l’aide de la commande ssh-keygen. Sur le serveur (dans l’exemple, celui qui reçoit), réalisez les commandes suivantes :
mkdir /root/.ssh cd /root/.ssh ssh-keygen cat votre_cle_publique > authorized_keys
La clé privée doit être récupérée sur le poste client dans le répertoire de votre choix (/root/.keys dans l’exemple) à l’aide de la commande scp :
scp root@adresse_ip_serveur:/root/.ssh/votre_cle-privee /root/.keys
Configuration du service SSH au niveau du serveur
Sur le serveur, au niveau du fichier de configuration /etc/ssh/sshd_config du démon Ssh, vous devez décommenter différentes lignes :
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no
Vous devez ensuite, après avoir sauvegardé les modifications, prendre en compte le changement de la configuration au niveau du service à l’aide de la commande : service sshd reload (service ssh reload sur Debian). Dès lors, la seule manière de vous connecter est de disposer de la clé privée générée préalablement au niveau du poste client (cf. ci-dessus).
Copie de répertoire via rsync
Grâce à l’option -c, seuls seront transférés du client vers le serveur les fichiers qui ont été modifiés ou ajoutés. Pour la compréhension de la commande rsync, vous disposez d’une aide très fournie sous Linux (rsync –help|more).
rsync -e "ssh -i chemin/votre_cle-privee" -a -A -X -c -z --compress-level=9 chemin/* root@adresse_ip_serveur:chemin
Du fait de la génération des clés, vous n’avez pas besoin de vous authentifier par la saisie d’un mot de passe ! L’utilisation des paramètres -z –compress-level=9 minimise la consommation de la bande passante au cours du transfert des fichiers.