Est-il possible de spécifier un autre port ssh lors de l’utilisation de rsync?

J’ai essayé la commande suivante:

rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path 

SSH s’exécute sur le port 2222, mais rsync essaie toujours d’utiliser le port 22 et se plaint de ne pas trouver le chemin, car il n’existe bien sûr pas.

Je voudrais savoir s’il est possible de synchroniser avec un hôte distant sur un port ssh non standard.

Votre ligne de commande devrait ressembler à ceci:

 rsync -rvz -e 'ssh -p 2222' --progress --remove-sent-files ./dir user@host:/path 

Cela fonctionne bien – je l’utilise tout le temps sans avoir besoin de nouvelles règles de pare-feu – notez simplement que la commande SSH elle-même est entre guillemets.

Une autre option, dans l’hôte à partir duquel vous exécutez rsync, définit le port dans le fichier de configuration ssh, à savoir:

 cat ~/.ssh/config Host host Port 2222 

Alors rsync sur ssh parlera au port 2222:

 rsync -rvz --progress --remove-sent-files ./dir user@host:/path 

lorsque vous devez envoyer des fichiers via un port SSH spécifique:

 rsync -azP -e "ssh -p PORT_NUMBER" source destination 

Exemple

 rsync -azP -e "ssh -p 2121" /path/to/files/source user@remoteip:/path/to/files/destination 

utilisez l’option “rsh”. par exemple:

 rsync -avz --rsh='ssh -p3382' root@remote_server_name:/opt/backups 

référez-vous à: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/

Un peu hors du commun mais pourrait aider quelqu’un. Si vous devez transmettre un mot de passe et un port, je vous suggère d’utiliser le package sshpass . La commande en ligne de commande devrait ressembler à ceci: sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/dir_on_host/

J’ai trouvé cette solution sur le site de Mike Hike Hostetler qui a parfaitement fonctionné pour moi.

 # rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/ 

Rsync s’exécute en tant que démon sur le port TCP 873, non protégé, n’a rien à voir avec SSH

De l’homme de Rsync:

Push: rsync [OPTION …] SRC … [USER @] HOST: DEST

Vous amène à croire que votre commande est correcte:

rsync -rvz –progress –remove-sent-files ./dir user @ host: 2222 / path

Cependant, cela lui demande de se connecter au démon Rsync sur le port 2222, qui n’est pas là.

Comme indiqué, la syntaxe correcte consiste à demander à Rsync d’utiliser une commande SSH personnalisée (en ajoutant -p 2222), qui continuera à se connecter (sur le côté distant) à TCP 873 pour rsync (en utilisant un tunnel SSH sécurisé).

rsync -rvz –progress –remove-sent-files -e “ssh -p 2222” ./dir utilisateur @ hôte / chemin

Je n’ai pas réussi à faire en sorte que rsync se connecte via ssh sur un autre port, mais je n’ai pas pu redirect la connexion ssh vers l’ordinateur que je voulais via iptables. Ce n’est pas la solution que je cherchais, mais cela a résolu mon problème.