通过跳级到另一台主机从远程到本地 scp 传输的语法?

通过跳级到另一台主机从远程到本地 scp 传输的语法?

我正在尝试将文件从远程服务器复制到本地服务器,但是,我的远程服务器首先要求我连接到中间主机,然后从那里跳转到实际服务器。我想知道如何使用这种跳跃技术使用 scp 命令将文件从远程服务器复制到本地计算机?

所以首先我必须连接到中间服务器,然后从那里我想连接到我的实际服务器。

答案1

对于现代版本的 ssh,使用 a 的概念非常容易,ProxyJump至少如果您设置了密钥的话。

我们将这 3 台机器称为 L、I 和 R(分别表示本地、中间和远程)。假设一开始用户名都是相同的。

那么所需的命令是

scp -oProxyJump=I R:remote_file localfile

如果用户名不同,则将 I 替换为user@I,将 R 替换为user@R

如果您使用 ssh,命令将是:

ssh -J [user@]I [user@]R 

答案2

您可以通过编辑 ssh 配置以包含代理来完成此操作。 scp 使用 ssh 进行远程连接,因此只需编辑 ssh 配置就可以了。使用您的“中间服务器”作为代理。

将这样的内容添加到您的~/.ssh/config文件中:

Host target.machine
  User          targetuser
  HostName      target.machine
  ProxyCommand  ssh [email protected] nc %h %p 2> /dev/null

scp然后就像直接连接到远程服务器一样使用。

为了给予应得的信任,我把这个来自这里

相关内容