Créer et configurer une paire de clés SSH pour la synchronisation entre 2 serveurs

Tutoriel : l’objectif est de créer une paire de clés SSH qui permettra de réaliser des backups (avec rsync, ...) entre 2 serveurs.

, par Christophe

  1. Création d’un user spécifique sur les 2 serveurs

    1. useradd --home /home/toto --password mon_super_motdepasse toto
  2. Du serveur de production (PROD) vers le serveur de backup (SAUVE)

    Remarque : dans toutes les commandes ssh, l’option -p permet de préciser le port de connexion ssh si différent de 22.

    1. Sur le serveur PROD :
      • Générer une paire de clés publique/privée sans mot de passe avec le compte utilisé pour la synchro (toto par ex)
        1. ssh-keygen -t rsa


        nom du fichier de clé =/home/toto/.ssh/ id_rsa_rsync
        pass = vide pour connexion auto de rsync

      • Envoyer sa cle privé sur le serveur SAUVE
        1. ssh-copy-id -i ~/.ssh/id_rsa_rync.pub '-p 1234 toto@serveur-sauve.tld'
    2. Sur le serveur SAUVE :
      • Ajouter les options de limitation de connexion en début de la ligne de la clé dans le fichier authorized_keys :
        1. from="1.2.3.4,...liste des IP autorisées séparées par une virgule"
    3. Sur le serveur PROD :
      • Tester la connexion vers SAUVE avec la clé :
        1. ssh -i /home/toto/id_rsa_rsync -p 1234  toto@serveur-sauve.tld
      • Tester le rsync via ssh + fichier de la clé privée : (dans /home/toto on crée un rép /test avec 1 ou 2 fichiers dedans)
        1. mkdir test
        2. cd test
        3. touch fichier1 fichier2
        4. rsync -e "ssh -i /home/toto/.ssh/id_rsa_rsync -p 1234" ./* toto@serveur-sauve.tld:/home/toto

        Télécharger

        On doit retrouver tous les fichiers de /test de la source dans le dossier /toto du serveur de SAUVE

      • Créer un fichier cron_synchro.sh dans /home/toto et le rendre exécutable
        1. #!/bin/bash
        2. rsync -e "ssh -i /home/toto/.ssh/id_rsa_rync -p 1234" -az /home/toto/test/ toto@serveur-sauve.tld:/home/toto

        Télécharger

      • Générer le crontab de toto pour lancer cron.sh (par ex ici à 1h12 toutes les nuits)
        1. crontab -e
        2. 12 1 * * * cd ~/ && ./cron_synchro.sh > /dev/null        

        Télécharger