SCP 使用本地机器作为跳转主机

SCP 使用本地机器作为跳转主机

我想在两个无法互相通信的远程服务器(R1 和 R2)之间传输文件。我的机器(假设为 L)可以与 R1 和 R2 通信。有没有办法将我的本地机器用作中间主机?

情况如下

L ----> R1
L ----> R2
R1 ---x--> R2

我想使用 L 将文件从 R1 发送到 R2。

R1 ----> L ----> R2

我找到了一些资源这里这里,但无法弄清楚使用本地机器作为中间主机的语法。

答案1

scp能够将文件从一台远程主机复制到另一台远程主机:

scp user1@host1:/some/file user2@host2:/some/directory/

这会将/some/file第一台主机上的内容复制到/some/directory第二台主机上。

通常,scp通过连接到 host1 并在 host1 上调用 scp 将文件传输到 host2 来实现这一点。你说这对你不起作用。

scp有一个选择在两个远程主机之间传输文件,使用本地主机作为中介:

 scp -3 user1@host1:/some/file user2@host2:/some/directory/
     ^^

以此方式运行时,本地scp实例将打开两个连接,每个主机一个。一个连接将发送/some/file到本地主机。另一个连接将接收文件并将其写入/some/directory。本地scp实例在两个连接之间中继数据。这应该可以满足您的要求。

相关内容