通过另一台服务器(有大小限制)在服务器和 PC 之间传输文件

通过另一台服务器(有大小限制)在服务器和 PC 之间传输文件

我正在一台服务器上工作,我需要从另一台服务器进入该服务器。例子:

ssh [email protected]                       
ssh [email protected]

请注意,我无法login2直接连接到,而只能从login1.

每当我想要将文件从 传输login2到我的计算机时,我首先必须将其从login2传输到login1,然后从 传输login1到我的计算机。问题是login1不能包含大于 1 GB 的文件(当login2可以时),因此它是一个瓶颈。

我的问题是,有没有办法仍然login1在我的计算机和 之间使用某种媒介login2,并且仍然传输大于 1 GB 的文件?

谢谢。

答案1

您缺少的关键流行词是“跳转主机”,因为这就是您的登录名:一个小型网关,不应该执行任何控制您可以继续访问的位置的操作。

鉴于足够新的时间ssh,你应该能够做到

scp -o [email protected] [email protected]:/pth/to/file /pth/to/dest 

在较旧的 ssh 客户端上,它将是

scp -o proxycommand=“ssh [email protected] -W %h:%p” [email protected]:/pth/to/src /pth/to/tg 

在这两种情况下,连接都将打开login1并通过隧道传输至login2。 (这可能要求您在 上使用代理转发或密码身份验证login2,即 上没有私钥login1。)

无论哪种情况,一旦您确认它有效,您就可以将该选项粘贴到您的~/.ssh/config位置,如下所示:

host login2.de
   ProxyJump [email protected]
#   ProxyCommand ssh [email protected] -W %h:%p

然后您的 ssh 连接将login2始终使用跳转主机,无需-o proxy...在命令行上显式显示。

答案2

通过本地服务器登录login1.de服务器并执行以下操作。ssh

scp -3 [email protected]:/file user@mylocal:/path/to/transfer

这会将scp流量从 server2 通过 server1 路由到本地服务器。

相关内容