Home > FAQ Gnu Linux > rsync via ssh
rsync via ssh PDF Imprimer Envoyer
Note des utilisateurs: / 0
MauvaisTrès bien 
Section Grégory
Écrit par Greg   
Dimanche, 05 Février 2006 16:51

pourait être : HowTo francophone rsync via ssh

En ce (beau) jour d'avril 2003, j'avais décidé d'utiliser 'rsync' entre 2 PC linux connecté via internet

  • Je souhaitais 'impérativement' crypter les échanges entre ces 2 machines (via un 'tunnel ssh')
  • cela devait se réaliser via cron : il fallait donc trouver un moyen de ne pas devoir saisir de mot de passe malgré l'utilisation de ssh
Après quelques demandent / Recherche (voir en bas de pages, les remerciements), j'en ais déduis la procédure ci-dessous que je vous livre

Tout d'abord, voici mes petites conventions d'écriture:

  • ceci est la mise en forme des Commandes à taper
  • ceci est la mise en forme des questions du shell
  • Désignation Machine Locale Machine Distante
    Nom Interne
    (uname -n)
    toto.bordeaux titi.lille
    Nom Internet toto.no-ip-com titi.no-ip.com

Voici comment je procède

  • Création des clefs d'authentifications
    • Une Privé qui restera sur toto.bordeaux
    • Une Public qui ira sur titi.lille
  • Copie de la clefs privée pour notre login local ~/.ssh/
  • Copie de la clef public sur la machine distante titi.lille dans ~/.ssh/
  • vérifier que la connexion ssh se fait sans saisie de pass(word/phrase)
  • utiliser un petit script pour sauvegarder mes modif de mon répertoire local vers la machine distante

C'est ici que les choses sérieuses se passent

donc, allons-y , dans un terminal (j'ai fait mon exemple en tant que 'root':
#ssh-keygen -t rsa -N -f ~/.ssh/Remote_authorized_keys
Enter passphrase (empty for no passphrase): Tapez 'ENTREE'
Enter same passphrase again: Tapez à nouveau sur 'ENTREE'

éditer le ~/.ssh/Remote_authorized_keys.pub et modifiez a la fin de la ligne
root@toto.bordeaux [normalement toto.bordeaux] par : Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. -ip-com

#scp Remote_authorized_keys.pub Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. :/root/.ssh/authorized_keys
Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. 's password: Tapez (une derniè fois :-) ) le mot de passe du root de titi.no-ip.com
Normalement le fichier est bien copié sur la machine distante

#cp Remote_authorized_keys ~/.ssh/id_rsa
Si tous c'est bien passé, à partir de maintenant la prochaine connexion vers Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. ne devrait pas demander de mot de passe, vérifions :
#ssh Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.
voili, voila ! j'ai le shell de la machione distante
  • Sans saisir de mot de passe
  • Sans saisie de 'pass phrase'

Maintenant voici le script que je me suis fait pour automatiser la synchronisation entre mes 2 machines

  • #!/bin/sh
    # Nom du script : MySync
    # Ne pas oublier de faire chmod 700 MySync pour pouvoir l'executer
    #
    # fonction : Envoi et reception de fichier entre 2 pc distant via internet
    #
    SrcFile=/home/greg/public_html/siteweb001/lesite/
    DstFile=/home/virtualServer/siteweb001/html/

    DstVisuel=/home/virtualServer/siteweb001/log/
    LclVisuel=/home/greg/public_html/siteweb001/log

    TheRsync=/usr/bin/rsync
    RemoteHost= Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.
    excludeLocalToRemote='--exclude upload --exclude "*.journal"'

    #put local to titi
    $TheRsync --stats -e ssh -avzp $excludeLocalToRemote --delete $SrcFile $RemoteHost:$DstFile


    #get from titi to local
    $TheRsync --stats -e ssh -avzp --delete $RemoteHost:$DstVisuel $LclVisuel
    ##################################################################
Un petit coups de
#./MySync
et après un petit moment (~ 15 secondes la 1er fois chez moi!) devrait apparaitre les fichiers échangés

#./MySync
Ne devrait plus rien transmettre, puisque vous n'avez peut être pas ajouté/modifé de fichiers dans /home/greg/public_html/siteweb001/lesite/
Note : NonTesté
--------
sur machine distante : copier /root/.ssh/authorized_keys ~[user]/.ssh/. ?



Voila, ceci était ma modeste contribution, en espérant qu'un jour elle servira ç quelqu'un (et que ce quelqu'un sera capable de me relire ;-) )

#echo Remerciements
  • 04/05/2005 : il semble qu'une commande supplémentaire existe : ssh-copy-id -i ~/.ssh/id_rsa.pub utilisateur@machine, merci à Sylvain chez rtcw.c.f pour cette info que je tenterais d'ajouter plus proprement dans cette page

#
Mise à jour le Dimanche, 05 Février 2006 16:53
 
 

Sondage

Ce portail
 

1ere Tit news

Lire la suite...