使用rsync时可以指定不同的ssh端口吗?

我一直在尝试下面的命令:

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

SSH在端口2222上运行,但rsync仍然尝试使用端口22,然后抱怨没有findpath,当然它不存在。

我想知道是否有可能rsync到一个非标准的SSH端口上的远程主机。

你的命令行应该是这样的:

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

这工作正常 – 我一直使用它,而不需要任何新的防火墙规则 – 只要注意SSH命令本身被引用引号。

另一种select,在运行rsync的主机上,在sshconfiguration文件中设置端口,即:

 cat ~/.ssh/config Host host Port 2222 

然后rsync通过ssh将会通过端口2222:

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

当您需要通过特定的SSH端口发送文件时:

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

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

使用“rsh选项”。 例如:

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

请参考: http : //www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/

有点偏离主题,但可能有助于某人。 如果你需要传递密码和端口,我build议使用sshpass包。 命令行命令如下所示: sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/dir_on_host/

我在Mike Hike Hostetler的网站上find了这个解决scheme,这个解决scheme非常适合我。

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

谢谢Mike

我不能让rsync通过不同端口上的ssh进行连接,但我无法通过iptables将ssh连接redirect到我想要的计算机。 这不是我正在寻找的解决scheme,但它解决了我的问题。