Avez-vous besoin de -e ssh pour rsync?


22

J'ai toujours l' habitude d'utiliser la commande suivante lors de la copie d'un serveur: rsync --progress -avze ssh user@host:/path/to/files ./here. Cependant, un ami d'esprit m'a montré que je pouvais tout simplement le faire rsync --progress -avz user@host:/path/to/files ./here. Donc, la question est, si vous n'avez pas besoin -e sshpourquoi est-il là de toute façon?

Réponses:


20

Chaque fois que vous avez besoin d'options supplémentaires pour la commande ssh en dehors de l'utilisateur et de l'hôte, vous avez besoin de l'indicateur -e. Peut-être que le serveur auquel vous vous connectez a l'écoute ssh sur le port 2222.

rsync -e 'ssh -p 2222' /source usr@host:/dest

Une alternative à contourner cela, il y a 2 fichiers que vous pouvez utiliser. /etc/ssh/ssh_configou~/.ssh/config

Le fichier de configuration utilise le même format que ssh_config. Il peut simplement être configuré par utilisateur!


9

Vous auriez également besoin -esi vous utilisez un emplacement de clé privée non par défaut, c'est-à-dire, spécifiez la clé privée via -e 'ssh -i /path/to/private/key/file.pem'. D'ailleurs, des ports d'écoute non par défaut pour sshd, également. Fondamentalement, utilisez -esi simplement l'utilisation ssh user@hostne fonctionne pas.


Une -ioption pour ssh ou rsync est-elle dans votre exemple? Et si c'est pour ssh, ça marche sans les guillemets simples autour de la commande?
Izkata

Oh, c'est vrai, j'ai besoin des citations. Modification de ma réponse maintenant.
cjc

8

Vous n'avez pas besoin de -e ssh pour utiliser ssh. En fait, si vous spécifiez la cible en tant qu'utilisateur @ hôte: / chemin / vers / fichiers, vous utilisez ssh par défaut. Il est laissé dans a) pour des raisons de compatibilité et b) dans les cas marginaux où vous pourriez avoir une combinaison d'hôtes rsyncd et ssh.


2
Il est requis sur RHEL 3, par exemple, car RSYNC_RSH par défaut est 'rsh'.
Kyle Smith

5

Cela dépend de ce qui a été spécifié pour l' --with-rshoption de configuration au moment de la compilation. La valeur par défaut est maintenant ssh si cette option n'a pas été spécifiée. Il avait été rsh à un moment donné dans le passé, mais même s'il est rsh, il pourrait ne pas être nécessaire car ssh pourrait être l'implémentation par défaut de rsh sur de nombreuses boîtes. Sur toutes mes machines, par exemple, readlink -f $(which rsh)montre que rsh est vraiment juste un lien symbolique pointant vers / usr / sbin / ssh

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.