12
votes

Comment automatiser RSYNC sans demander une invite de mot de passe

Je voudrais automatiser la tâche RSYNC en tant que travail cron. Comme il a besoin de la phrase secrète, je ne suis pas capable de faire le cronjob. J'ai besoin de spécifier la phrase secrète avec la commande rsync ou je stockerai la phrase secrète dans un fichier et je vais en lire. Ma commande ressemblera à ceci: xxx

alors où dois-je mettre le mot de passe?


1 commentaires

Appartient sur superuserer.com


3 Réponses :


15
votes

Vous n'avez pas besoin de faire cela - il suffit de configurer une paire de touches SSH et de mettre la clé publique dans le répertoire .sh du système distant.

alors vous venez de faire cela: P>

rsync -a -e ssh /local/path/ server:/remote/path/


3 commentaires

L'OP mentionne l'utilisation d'un Sshkey avec une phrase secrète. Comment cela résoudra-t-il l'entrée de la phrase secrète?


La plupart des guides recommandent de créer les clés sans phrase secrète.


Surveillez: Si vous exécutez votre commande avec sudo , il invitera un mot de passe même avec une paire de clés SSH.



5
votes

Si vous voulez que cela fonctionne de cron, vous avez plusieurs possibilités:

  • Configuration des touches SSH moins de mot de passe - pas très sécurisée
  • Configurez les touches SSH moins de mot de passe, mais combinez-les avec SSH ForCommand dans le fichier Authorisé_keys pour limiter les commandes pouvant être exécutées avec cette touche SSH. Voir Homme Sshd, Google sur "SSH ForCecommand"
  • Configurez les touches SSH de configuration, mais combinez-les avec Keychain pour conserver la clé en mémoire entre les sessions. J'ai écrit un poteau de blog sur ceci: SSH, SSH-Agent, Keychain et Cron Notes

0 commentaires

4
votes

Si vous souhaitez copier des fichiers à distance:

  1. Assurez-vous d'avoir une clé publique sur votre machine locale pouvant vous connecter à la machine distante. (Dans ce cas, ma clé SSH est "/Home/myaccount/.ssh/id_rsa"
  2. Spécifiez le dossier local que vous souhaitez synchroniser avec la télécommande, dans mon cas "/ Accueil / MyAccount / MySourceDeder"
  3. Spécifiez le dossier de destination PLAIRE PLABL SUR LE SERVEUR RÉDOISION, dans mon cas RemoteAccount @ RemoteEserver: "/ Accueil / RemoteAccount / MyDestimageFolder /"

    Remarque:

    • - Progress consiste à montrer des progrès pour chaque fichier copié
    • -A pour transférer rectilement tous les fichiers du MySourcefolder
    • -v pour la verbosité
    • -Z pour compresser des portions de données pour de petits fichiers

      Ma commande ressemblera ci-dessous:

      rsync -avz -progress -e "ssh -i /home/myaccount/.ssh/id_rsa" / Accueil / MyAccount / MySourceFolder RemoteAccount @ RemoteServer: "/ Accueil / RemoteAccount / MyDestimationFolder /"


1 commentaires

Comment avez-vous créé exactement "/home/myaccount/.ssh/id_rsa" et ce qui est écrit là-bas? Est-ce le mot de passe du serveur distant en clairexuel (sans cryptage)? Je ne veux pas que d'autres utilisateurs de mon ordinateur (y compris l'administrateur) puissent lire mon mot de passe.