【发布时间】:2013-05-15 07:40:38
【问题描述】:
我想同步到一个集群节点,我通常通过另一个系统连接到该节点:
假设我先连接到
ssh user@bridge
从那里到
ssh user@clusternode
现在我想从我的工作站同步到 clusternode。我执行以下操作:
-
我打开一个 ssh 隧道
ssh -L8000:clusternode:8000 user@bridge -
我从我的工作站同步到集群节点
rsync -e "ssh -p8000" source user@localhost:destination
它不起作用,我明白了
ssh_exchange_identification: Connection closed by remote host
为什么它不起作用?我该怎么办?
我在这里找到了很多资料:
http://toddharris.net/blog/2005/10/23/rsyncing-through-an-ssh-tunnel/
我想明白我的问题是网桥和目的地之间的第二次身份验证,所以我改为方法2,也不是很优雅,但它有效。我想尝试方法3,但我不知道如何配置rsync daemon
【问题讨论】:
-
尝试使用 ssh 命令的 -v(或 -vvv)选项:
rsync -e "ssh -vvv -p8000" source user@localhost:destination启用详细 ssh 日志记录,错误几乎总是在那里。 -
您可以设置一个用于集群节点的代理(参见例如rsync.samba.org/firewall.html,尤其是方法 2),然后在不明确指定代理的情况下使用 rsync。
-
比以下答案中给出的更好的解决方案:puppet.com/blog/speed-up-ssh-by-reusing-connections
-
为什么这个问题跑题了?
-
@rashid "我们不允许在 Stack Overflow 上提出有关专业服务器或网络相关基础设施管理的问题。您可以编辑问题,使其成为 Stack Overflow 的主题或在服务器上发布新问题错误。”
标签: ssh rsync ssh-tunnel