2015-03-03 47 views
13

我试图将文件从一个远程服务器从我本地机复制到另一个远程服务器。 这里就是我想要做的如何使用第三方本地机器上的scp在两台远程服务器之间传输文件?

localA $ scp [email protected]:/path/to/file [email protected]:/path 

的问题是,我需要通过两个密码都为用户B和用户C在远程计算机上。

根据Garron以上应该可以,但我被拒绝了。

Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive). 
lost connection 

有什么建议吗?

回答

21

这个问题已经存在于超级用户:

https://superuser.com/questions/686394/scp-between-two-remote-hosts-from-my-third-pc

scp -3 [email protected]:/home/user1/file1.txt [email protected]:/home/user2/file1.txt 

与那里描述-3选项,通过在其上发出命令的PC指示SCP来路由流量。

如果remote1和remote2在同一个网络上,则上述条件为真。

如果不是: - 你必须使用端口转发

+0

不通过本地主机添加-3路由流量真的放慢东西,如果本地主机有一个缓慢的连接? – wcochran 2017-08-11 23:00:57

+0

@wcochran是的,它的确如此。但在任何情况下都很容易。我想知道是否有一种通用的方法可以在两个远程主机之间建立直接的SSH连接,而不会泄露任何秘密。 – sudo 2018-01-24 03:03:59

1

如果您在authorised_keys文件中没有条目,则只需要密码。一旦您登录到2台服务器(localA - > remoteB & remoteB - > remoteC)并建立了您的原始命令应该工作的安全连接。

+0

你好,我仍然不能这样做,因为我使用clearcase,我相信。但你的提示很棒。 authorised_keys与〜/ .ssh/config和别名相结合要快得多。谢谢 – Alan 2015-03-04 14:56:10

3

这是可能的使用Linux终端下面的命令行:

SCP -3 USER1 @ IP:路径/从/目录/ USER2 @ IP:路径/到/目录

一个提示会出现询问这样的密码:

USER1 @ IP的密码:user2的@ IP的密码:

如果通过预先给这两个密码才能在第一个密码后输入,它应该接受,但不会。即使您再次输入了密码,但在第一次输入密码后没有按下输入密码,也不会再接受。

您必须先给user2,然后按回车键,然后输入user1的密码,然后按Enter键。这将工作。

我知道这听起来不对,但只有这样才行。这是scp中的错误

+0

是否有可能创建一个shell脚本,其密码也存储在里面? – sjd 2018-02-01 07:17:22

+0

取决于!你的目标是什么?你想做scp或ssh? – 2018-02-08 10:01:02

21

如果你可以从当地的ssh到两个远程服务器(本地 - > REMOTE1 &地方 - > REMOTE2),那么你可以尝试:

ssh -A -t [email protected] scp srcpath [email protected]:destpath 

这将转移直接从REMOTE1REMOTE2一路使用您的本地凭据。

如果您不想被要求输入密码,那么您应该在遥控器上设置authorized_keys文件。

+0

感谢Ruben,根据我迄今为止见过的大多数经验丰富的ssh用户,使用密钥是他们两者中最安全的选择。 – Alan 2016-05-16 10:49:36

+0

对此的一个说明是,因为这将直接*从remote1连接到remote2,那么它不足以从你的本地ssh到remote2,你需要检查你是否可以从remote1 ssh到remote2(例如名称和配置在您的〜/ .ssh/config在remote1) – Peteris 2016-08-04 08:21:18

+1

迄今为止我所见过的最佳解决方案。您不必授权服务器彼此“ssh”,只需要使用密钥访问它们。与'scp -3'不同,数据直接在服务器之间复制,可能通过非常快速的本地网络。 – 2016-11-11 21:27:02

1

我发现-o "ForwardAgent yes”的伎俩:

localA $ scp -o "ForwardAgent yes” [email protected]:/path/to/file [email protected]:/path 

我喜欢这个优于-3,因为我不希望中间减速机事情下降。我也喜欢@RubenCaro的回答,但这看起来更直接。

+0

它不适合我。错误:'权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic,密码)。 失去连接'。任何线索?谢谢! – Tung 2017-11-07 20:35:09

+0

适用于我(使用私钥):scp -o'ForwardAgent yes'-i localkey.pem userB @ remoteB:/ path/to/file userC @ remoteC:/ path。 – brunesto 2018-03-05 15:59:02

相关问题