1.7. 通过 SSH 跳过主机连接到远程服务器
您可以通过中间服务器(也称为跳过主机)从本地系统连接到远程服务器。跳过服务器桥接来自不同安全区的主机,可以管理多个客户端-服务器连接。
先决条件
- 跳过主机接受来自本地系统的 SSH 连接。
- 远程服务器接受来自跳过主机的 SSH 连接。
流程
如果您通过跳过服务器或多个中间服务器进行连接,请使用
ssh -J
命令并直接指定跳过服务器,例如:$ ssh -J <jump-1.example.com>,<jump-2.example.com>,<jump-3.example.com> <target-server-1.example.com>
如果跳板服务器上的用户名或 SSH 端口与远程服务器上的用户名和端口不同,请只修改上一命令中的主机名表示法,例如:
$ ssh -J <example.user.1>@<jump-1.example.com>:<75>,<example.user.2>@<jump-2.example.com>:<75>,<example.user.3>@<jump-3.example.com>:<75> <example.user.f>@<target-server-1.example.com>:<220>
如果您定期通过跳过服务器连接到远程服务器,请在 SSH 配置文件中存储 jump-server 配置:
通过编辑本地系统中的
~/.ssh/config
文件来定义跳板主机,例如:Host <jump-server-1> HostName <jump-1.example.com>
-
Host
参数定义您可以在ssh
命令中使用的主机的名称或别名。该值可以匹配真实的主机名,但也可以是任意字符串。 -
HostName
参数设置跳过主机的实际主机名或 IP 地址。
-
使用
ProxyJump
指令将远程服务器跳板配置添加到本地系统上的~/.ssh/config
文件中,例如:Host <remote-server-1> HostName <target-server-1.example.com> ProxyJump <jump-server-1>
使用您的本地系统通过跳过服务器连接到远程服务器:
$ ssh <remote-server-1>
如果省略前面的配置步骤,此命令等同于
ssh -J jump-server1 remote-server
命令。
其他资源
-
ssh_config(5)
andssh(1)
man pages on your system