我正在尝试通过 SSH 使用 rsync,服务器以守护进程模式运行 rsync,客户端使用以下命令连接:
rsync -options user@server::folder /local/copy
这很好。问题是 SSH 在服务器上的非默认端口上运行,以下操作失败:
$rsync -options -e 'ssh -p 1234' user@server::folder /local/copy
#######################################
# Access to this server is prohibited #
########## Disconnect NOW! ############
#######################################
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [receiver=2.6.8]
但是 SSH 可以工作(它使用密钥):
[user@client ~]$ ssh -p 1234 user@server
#######################################
# Access to this server is prohibited #
########## Disconnect NOW! ############
#######################################
Last login: Thu Mar 31 09:18:08 2011 from 1.2.3.4
[user@server ~]$
我该如何解决这个问题?SSH 可以工作,rsync 也可以工作,但是它们一起不工作。我已关闭 iptables,如上所示,它确实可以连接,但是 rsync 无法连接到定义的文件夹?
答案1
您正在使用用于 rsyncd 守护进程的 :: 语法。如果您要通过 alt ssh 端口进行复制,请使用以下选项:
$ rsync -options -e'ssh -p 1234'用户@服务器:/文件夹/本地/复制