【问题标题】:I need to copy a file from server A that I can only access by first connecting to server B我需要从服务器 A 复制一个文件,我只能通过首先连接到服务器 B 才能访问该文件
【发布时间】:2019-03-04 22:11:02
【问题描述】:

我需要从服务器复制一个文件(~9 gigs),我们称之为服务器 B。我只能通过首先连接到服务器 A 来 ssh 到服务器 B。我正在尝试使用 scp 将文件复制到我的本地机器。我只是想先使用 scp 将文件复制到服务器 A,然后再复制到我的本地计算机 - 不幸的是,尽管服务器 A 上只有一半可用的磁盘空间。有什么办法可以直接从服务器B复制它?我无法使用 ssh 直接从我的计算机连接到服务器 B。我在 mac 上使用终端。

【问题讨论】:

  • 听起来你做不到。服务器 A 就像另一个服务器的 Jump Box,根据您在这里告诉我们的内容,没有其他连接替代方案。
  • 啊,真可惜。好的,谢谢。

标签: macos terminal scp


【解决方案1】:

如果您的计算机和跳转主机(服务器 A)都运行 OpenSSH v7.3 或更高版本,您可以使用 ProxyJump 选项自动执行此操作:

scp -oProxyJump=userA@serverA userB@serverB:remoteFile localDest

它的作用是打开与服务器 A 的 SSH 连接,然后通过该隧道打开从本地计算机到服务器 B 的 SSH (/scp) 连接,然后通过该连接传输文件。请注意,它会在连接时要求输入两个密码:首先是 serverA,然后是 serverB。

您还可以通过在您的计算机上创建一个 ssh 配置文件 (~/.ssh/config) 来自动执行此操作,然后输入如下内容:

Host serverB
    ProxyJump userA@serverA

...它告诉 ssh(和 scp)在您请求连接到 serverB 时自动执行 ProxyJump。有关详细信息,请参阅OpenSSH docs on the config file

如果您在两台计算机上都没有足够新的 OpenSSH,但在 serverA 上可以使用 netcat(或 nc 或类似的东西),您可能也可以使用 ProxyCommand 选项获得相同的效果。见this superuser question

【讨论】:

  • 谢谢你,戈登,这正是我想要的!
猜你喜欢
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多