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

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

情况就是这样。

我有3个主机。

  • 主机1:Ubuntu 12.04

  • 主机2:SUSE Linux Enterprise Server 11 SP1

  • Host3:安装了Cygwin 1.7.8的Windows Server 2008 R2,还安装了WinSSHD(我知道正常的ssh登录是由WinSSHD处理的,但是rsync使用cygwin路径,不知道错在哪里)

  • 现在我需要在Host1上运行remote copy命令,让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'
    
    链接地址: http://www.djcxy.com/p/92205.html

    上一篇: Remotely copy between two servers from a third server with all ssh key set

    下一篇: How to download a file from EC2 instance to Local Computer