I have been attempting the following command:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH is running on port 2222, but rsync still tries to use port 22 and then complains about not finding the path, cause of course it does not exist.
I would like to know if it is possible to rsync to a remote host on a non-standard ssh port.
when you need to send files through a specific SSH port:
example
A bit offtopic but might help someone. If you need to pass password and port I suggest using
sshpass
package. Command line command would look like this:sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/dir_on_host/
Rsync runs as a daemon on TCP port 873, unprotected, has nothing to do with SSH
From Rsync man:
Leads you to believe your command is correct:
However, that is instructing it to connect to Rsync daemon on port 2222, which is not there.
As noted, the correct syntax is to tell Rsync to use a custom SSH command (adding -p 2222), which will continue to connect (on remote side) to TCP 873 for rsync (using secure SSH tunnel).
Another option, in the host you run rsync from, set the port in the ssh config file, ie:
Then rsync over ssh will talk to port 2222:
use the "rsh option" . e.g.:
refer to: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
I was not able to get rsync to connect via ssh on a different port, but I wasn able to redirect the ssh connection to the computer I wanted via iptables. This is not the solution I was looking for, but it solved my problem.