我目前在 serverB 上有一个文件,我想将其传输到我的本地计算机。为了到达 serverB,我首先 ssh 到 serverA,然后 ssh 到 serverB。 (例如 ssh @serverA 然后在 serverA 内 -> ssh @serverB)
不确定使用 scp 执行此操作的最佳方法是什么?
答案1
您可以使用ProxyJump
中的选项~/.ssh/config
。从man ssh
:
-J 目的地
首先创建一个连接到目标主机SSH连接到目的地描述的跳转主机,然后建立从那里到最终目的地的 TCP 转发。可以指定多个跳转,并用逗号分隔。这是指定一个的快捷方式代理跳转配置指令。请注意,命令行上提供的配置指令通常适用于目标主机,而不适用于任何指定的跳转主机。使用 ~/.ssh/config 指定跳转主机的配置。
例如,您的~/.ssh/config
可能如下所示:
Host serverA
Port 22
Host serverB
Port 22
ProxyJump serverA
这将告知ssh
始终连接到 serverB通过serverA,它会为普通ssh
和scp
.换句话说,您可以键入ssh serverB
or scp serverB:big_file.txt .
,它就会知道通过 ServerA 进行路由。 (但是,如果您使用公钥身份验证,则需要 serverB 所需密钥的本地副本。)
这就是常说的“跳转主机” ssh
。中的相关配置选项~/.ssh/config
是ProxyCommand
.