web-dev-qa-db-fra.com

Avez-vous besoin -e ssh pour rsync?

J'ai toujours utilisé l'utilisation de 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 peux simplement faire rsync --progress -avz user@Host:/path/to/files ./here. Donc, la question est, si vous n'avez pas besoin -e ssh Pourquoi est-il là-bas de toute façon?

22
GradGuy

Chaque fois que vous avez besoin d'options supplémentaires sur la commande SSH en dehors de l'utilisateur et de l'hôte, vous avez besoin du drapeau -E. Peut-être le serveur que vous connectez à SSH écoute sur le port 2222.

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

Une alternative à la déplacement de cela, il y a 2 fichiers que vous pouvez utiliser. /etc/ssh/ssh_config ou ~/.ssh/config

Le fichier de configuration utilise le même format que ssh_config. Il est simplement capable d'être configuré sur une base d'utilisateur!

20
UtahJarhead

Vous auriez également besoin de -e Si vous utilisez un emplacement de clé privée non par défaut, c'est-à-dire spécifier la clé privée via -e 'ssh -i /path/to/private/key/file.pem'. Pour cette affaire, des ports d'écoute non par défaut pour SSHD, également. Fondamentalement, utilisez -e Si vous utilisez simplement ssh user@Host ne fonctionne pas.

9
cjc

Vous n'avez pas besoin de SSH pour utiliser SSH. En fait, si vous spécifiez la cible comme utilisateur @ host:/chemin/vers/fichiers, vous utilisez SSH par défaut. Il est laissé dans a) pour des raisons de compatibilité et b) des cas de franges où vous pourriez avoir une combinaison d'hôtes RSYNCD et SSH.

8
Joel E Salas