使用所有ssh密钥集从第三台服务器远程复制两台服务器

时间:2014-02-21 04:38:28

标签: python linux ssh scp

我正在使用python编写一个部署脚本,但是在我完成之后,我发现可能无法实现我的想法。

情况是这样的。

我有3个主人。

  • Host1:Ubuntu 12.04

  • Host2:SUSE Linux Enterprise Server 11 SP1

  • Host3:安装了Cygwin 1.7.8的Windows Server 2008 R2,也安装了WinSSHD(我知道正常的ssh登录是由WinSSHD处理的,不过rsync使用的是cygwin路径,不知道出了什么问题)

现在我需要在Host1上运行远程复制命令,让文件在Host2和Host3之间传输。我已经设置了所有ssh密钥,在ssh登录到任何主机后使用scp没有问题。

然而,这将失败。

Host1:~$ ssh Host2 scp Host3:/myfile_on_Host3 /target_Host2_path

此命令不返回任何内容,scp应该列出文件复制,但这不会返回任何内容,并且文件不会被复制。

这也会失败,

Host1:~$ scp Host3:/myfile_on_Host3 Host2:/target_Host2_path

同样,这不会返回任何内容,甚至不会返回。

但以下情况可行,

Host1:~$ ssh Host2
Host2:~$ scp Host3:/myfile_on_Host3 /target_Host2_path

所以我在这里完全糊涂了,为什么在第三台主机上,我不能在另外两台服务器之间进行远程复制?

更新

我使用rsync而不是scp使文件复制最终工作,但我仍然完全困惑。

所以这会复制文件。

Host1:~$ ssh -A Host2 'rsync /myfile_on_Host2 Host3:/cygdrive/d/targetHost3Path/'

以下内容也可以使用scp。

Host1:~$ ssh -A Host2 'scp /myfile_on_Host2 Host3:D:\\targetHost3Path'

0 个答案:

没有答案