我一直在尝试以下命令:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH在端口2222上运行,但是rsync仍然尝试使用端口22,然后抱怨找不到路径,因为它当然不存在。
我想知道是否有可能在非标准的ssh端口上rsync到远程主机。
我一直在尝试以下命令:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH在端口2222上运行,但是rsync仍然尝试使用端口22,然后抱怨找不到路径,因为它当然不存在。
我想知道是否有可能在非标准的ssh端口上rsync到远程主机。
当前回答
正确的语法是告诉Rsync使用自定义SSH命令(添加-p 2222),该命令使用SSH创建到远程端的安全隧道,然后通过localhost:873进行连接
Rsync -rvz——progress——remove-sent-files -e "ssh -p 2222" ./dir user@host/路径
Rsync作为守护进程运行在TCP端口873上,这是不安全的。
来自Rsync男子:
推:rsync [OPTION, p ..]] SRC ...(USER@)主持人:DEST
这误导了人们这样做:
Rsync -rvz——progress——remove-sent-files ./dir user@host:2222/path
但是,这将指示它连接到端口2222上的Rsync守护进程,而端口2222并不存在。
其他回答
正确的语法是告诉Rsync使用自定义SSH命令(添加-p 2222),该命令使用SSH创建到远程端的安全隧道,然后通过localhost:873进行连接
Rsync -rvz——progress——remove-sent-files -e "ssh -p 2222" ./dir user@host/路径
Rsync作为守护进程运行在TCP端口873上,这是不安全的。
来自Rsync男子:
推:rsync [OPTION, p ..]] SRC ...(USER@)主持人:DEST
这误导了人们这样做:
Rsync -rvz——progress——remove-sent-files ./dir user@host:2222/path
但是,这将指示它连接到端口2222上的Rsync守护进程,而端口2222并不存在。
有点跑题了,但也许能帮到别人。如果你需要传递密码和端口,我建议使用sshpass包。命令行命令看起来像这样: sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/dir_on_host/
当您需要通过指定的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
我在Mike Hike Hostetler的网站上找到了这个解决方案,它非常适合我。
# rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/
我的2美分,在一个系统用户中,你可以在/etc/ssh/ssh_config上设置端口,然后rsync将使用这里设置的端口