【发布时间】:2017-04-24 23:21:09
【问题描述】:
我正在尝试使用以下命令将选定的整个目录从节点 1 复制到另一个节点 2,但它会抛出错误。我可以登录到 node1,从 node1 我也可以登录到 node2,反之亦然。
Node1 和 node2 相同
scp -r -i abc.pem user1@node1:/abc/abc1/* user2@node2:/abc/abc1/*
错误:
权限被拒绝(公钥)。失去联系
【问题讨论】:
-
您需要能够直接登录到 node2,因为
scp通过您的本地系统中继。 -
否则必须在node1上执行
scp。并且也将密钥存储在那里。 -
@arkascha 是否有另一个命令可以直接将文件从节点 1 传输到节点 2?
-
确保从 local 节点到 node2 的 SSH 可以正常工作,并且不要在 node2(目标)端的路径中添加星号(此外,在某些情况下,您' 需要引用星号或其他通配符,但在这里它可能没问题 - 运行带有 echo" 的命令,以便查看 shell 是否在你没有扩展你的 "" 时'没想到)。我可能会使用 -rpv 而不是 -r。
-
None 没有相同的要求。但是您可以 做的是:使用
ssh登录到node1,然后从那里登录到node2 并设置一个ssh 隧道,将node2 的ssh 服务器转发到node1 上的本地端口。手册页中描述了如何设置这样的隧道。然后你可以在你的本地系统上使用scp,并通过指定你设置隧道的端口从user1@node1复制到user2@node1,这样你的传输实际上是通过隧道传输到node2的。