proxyjump可实现本地终端一条命令直连内网服务器,需跳板机与目标服务器均配置密钥登录且openssh≥7.3;通过~/.ssh/config中proxyjump指令自动跳转,支持多层嵌套,首次连接需手动确认主机指纹。

直接用 ProxyJump 配置 SSH 跳板,核心是让本地终端一条命令直达内网服务器,中间跳转全自动完成,既安全又省事。关键前提是跳板机(公网可访问)和目标服务器(仅内网可达)都已配置好密钥登录,且本地 OpenSSH 版本 ≥ 7.3。
准备密钥登录基础
跳板机和目标服务器都不能依赖密码登录,否则 ProxyJump 会中断或反复提示输密。
- 在本地生成一对密钥(如未有):
ssh-keygen -t rsa -f ~/.ssh/id_rsa_jump,连按三次回车用默认设置 - 把公钥分别复制到跳板机和目标服务器的
~/.ssh/authorized_keys中:ssh-copy-id -i ~/.ssh/id_rsa_jump.pub user@jump-ipssh-copy-id -i ~/.ssh/id_rsa_jump.pub user@target-ip - 确认两台服务器的
/etc/ssh/sshd_config中启用了密钥认证:PubkeyAuthentication yes,并重启服务:sudo systemctl restart sshd
配置 ~/.ssh/config 文件
这是最常用、最清晰的方式。用文本编辑器打开或新建该文件:nano ~/.ssh/config,添加如下结构(替换实际值):
Host jump
HostName 192.168.1.50
User jump_admin
Port 22002
IdentityFile ~/.ssh/id_rsa_jump
Host target
HostName 10.0.1.100
User dev_user
Port 22001
IdentityFile ~/.ssh/id_rsa_jump
ProxyJump jump
注意:ProxyJump jump 行表示“连接 target 时,自动先走 jump 这个别名定义的主机”。保存后运行 chmod 600 ~/.ssh/config 确保权限安全。
验证连接与首次使用注意事项
执行 ssh target 即可直连内网服务器。首次连接时,SSH 会提示确认跳板机和目标服务器的主机指纹(The authenticity of host '...' can't be established)。
- 建议先单独执行
ssh jump和ssh target各一次,手动输入yes接受指纹,它们会被存入~/.ssh/known_hosts - 之后再用
ssh target就不会卡住;VS Code Remote-SSH 插件也能正常识别并连接target别名 - 如果遇到连接失败,可用
-v参数调试:ssh -v target查看在哪一层断开
多层跳板的写法(扩展场景)
若路径是「本地 → 跳板A → 跳板B → 目标」,config 可嵌套定义:
Host jump-a
HostName a.example.com
User user_a
IdentityFile ~/.ssh/id_rsa_a
Host jump-b
HostName b.internal
User user_b
IdentityFile ~/.ssh/id_rsa_b
ProxyJump jump-a
Host final
HostName 10.10.10.20
User appuser
IdentityFile ~/.ssh/id_rsa_b
ProxyJump jump-b
此时只需 ssh final,SSH 会自动串起三层加密通道,全程无需人工干预。











