如何从本地计算机上的双远程服务器复制文件

如何从本地计算机上的双远程服务器复制文件

我的服务器上有一些文件,我想将其复制到本地计算机上。问题是我无法直接连接到远程计算机,因此我需要先连接到中间服务器,然后才能通过中间服务器连接到目标服务器。有没有办法将文件直接从目标服务器复制到本地计算机并以某种方式绕过中间服务器?

谢谢

答案1

走直接路线可能是不可能的。但是,如果您能够使用 登录到中间设备ssh,然后从那里登录到远程设备,ssh那么您可以使用称为本地端口转发将文件复制到本地计算机上scp。看起来您是直接从远程复制,但实际上是通过中间设备进行隧道复制。

在两个单独的终端(命令行、shell 等)上尝试以下操作

1号航站楼:

# set up 'local port forwarding'
ssh -v -T -N -L 2222:remote:22 username@intermediate

2 号航站楼:

# do your scp command(s) like this example
scp -P 2222 localhost:/path/to/file .

替换适当的主机名或 IP 地址偏僻的中间的

scp命令中/path/to/file是远程服务器上的路径。

答案2

您不需要端口转发,您可以使用ProxyCommand.添加类似这样的内容~/.ssh/config

Host some_name
    Hostname        internal.example.com
    User            internal_user
    ProxyCommand    ssh -A -q -l %r -W %h:%p external.example.com

这将允许您ssh在内部机器上使用ssh some_name、使用scp等。

相关内容