2017-04-06 16 views
-1

如何为以下方案创建SSH隧道。通过SSH隧道将数据从一个数据中心传输到另一个中间机的数据

我有3个机..

A. Data Center A VM. 
B. Machine at work (middle man). 
C. Data Center C VM. 

因此,我可以从乙SSH - > A,从乙 - > C,但不能从A - > C和C->甲。

有没有办法设置SSH隧道,以便我可以使用计算机B将数据从A(数据中心A)传输到C(数据中心C)。 我想使用rsync传输数据,请在隧道后告诉我如何使用rsync?

在提到的回复中,他们有从A-> B-> C的访问权限,可以使用它。在我的问题我已经从B-> A和B>下的访问,我想将数据从A-如下复制>ç

+0

可能的重复[如何通过中间服务器连接的本地和远程服务器之间传输数据? ](http://stackoverflow.com/questions/24165517/how-to-transfer-data-between-local-and-remote-server-connected-via-intermediate) –

+0

@JohnC问题不重复。他们有A-> B-> C的访问权限,可以使用它。在我的问题中,我有一个来自B-> A和B-> C的访问,我想从A-> C –

+0

复制数据。因此,只需使用scp A:/ path/file C:/ path/file? –

回答

0

我找到了解决办法,下面是详细信息

该解决方案分为两个部分:

  1. 以下命令将源和目的地 机之间的隧道。要调试连接,请将其分成两个 部件并添加详细状态:

    在Middle Machine上运行此命令[B.机在工作(中间人)

    $的ssh -v -R 50000:(数据中心C VM的IP地址):22(数据中心虚拟机的IP地址) 举例:SSH -v -R 50000 :192.168.1.25:22 192.168.1.36

注:为了得到这个工作,你需要有两个远程主机之间建立正确的SSH密钥[数据中心虚拟机(Source)和数据中心C VM(目的地)],源机器上的私钥和目标机器上的公钥。

  • 如果1 soltion的作品,那么你会得到源 机器上的一个shell访问(数据中心A VM)。现在尝试从Data Center A VM的rsync命令。

    建议在不同的终端执行此操作,因此 冗长的ssh信息不会与rsync 状态信息混合在一起。

    $ rsync的-e “SSH -p 50000” -vuar /选择/ SOURCE_PATH本地主机中:/ opt/destination_path可

  • 0

    随着讨论here

    尝试-3选项,:

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

    -3选项指示scp通过发送命令的PC路由流量,即使它是第三方传输。这样,授权凭证必须仅存在于发行PC(第三方)上。

    +0

    感谢您的回复,我想复制大小很大的目录并使用rsync,这里scp不会为我工作。 –

    +0

    一旦scp工作,你应该能够使用rsync没有问题。尽管先用scp进行测试。 –

    +0

    我试过这个解决方案http://unix.stackexchange.com/questions/183504/how-to-rsync-files-between-two-remotes但得到这个错误“主机密钥验证失败” –

    相关问题