ProxyJump可实现本地终端一条命令直达内网目标,要求OpenSSH 7.3+、密钥登录配置、跳板机启用AllowTcpForwarding和AllowAgentForwarding,并通过~/.ssh/config或-o ProxyJump选项配置跳转链路。

Linux 使用 SSH 代理跳转(ProxyJump)连接跳板机,核心是让本地终端一条命令直达内网目标,中间跳板机不存密钥、不参与认证,全程加密且可维护。关键不是“连过去”,而是安全、自动、可复用。
确认基础前提是否满足
ProxyJump 功能依赖 OpenSSH 7.3+,且需服务端配合,缺一不可:
- 本地执行
ssh -V,确保版本 ≥ 7.3; - 跳板机上执行
sshd -V 2>&1 | head -1,同样需 ≥ 7.3; - 所有节点(本地、跳板机、目标机)已配置密钥登录,私钥权限为
600(chmod 600 ~/.ssh/id_*); - 跳板机
/etc/ssh/sshd_config中启用AllowTcpForwarding yes和AllowAgentForwarding yes,并设PasswordAuthentication no。
配置 ~/.ssh/config 实现一键跳转
这是最稳定、最通用的方式,支持 ssh、scp、sftp 和 VS Code Remote-SSH:
- 每个
Host块顶格写,字段用空格缩进(禁用 Tab); - 跳板机和目标机分别定义,用
ProxyJump显式声明依赖关系; - 每个 Host 必须指定
IdentityFile,不同节点不共用私钥文件; - 配置完运行
chmod 600 ~/.ssh/config,否则 SSH 直接忽略该文件。
示例(本地 → jump1 → target):
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
Host jump1
HostName 203.0.113.10
User admin
IdentityFile ~/.ssh/id_ed25519_jump1
Host target
HostName 192.168.5.20
User appuser
IdentityFile ~/.ssh/id_ed25519_target
ProxyJump jump1命令行临时跳转(适合调试或受限环境)
无需修改配置文件,适用于一次性连接或 CI/CD 脚本:
- 单跳:
ssh -o ProxyJump=admin@203.0.113.10 appuser@192.168.5.20; - 多跳(三层):
ssh -o ProxyJump=admin@203.0.113.10 -o ProxyJump=ops@10.1.1.20 appuser@172.16.5.100; - 可叠加其他选项,如
-i指定私钥、-p指定端口。
验证跳转是否真正生效
能登录不等于链路安全可用,重点验证认证能力是否抵达目标:
- 执行
ssh target,应直接进入目标机,无中间交互; - 登录后运行
ssh-add -l,若列出本地加载的密钥,说明 agent 透传成功(需配合ForwardAgent yes和ssh-agent); - 若失败,检查跳板机
echo $SSH_AUTH_SOCK是否有输出,以及其sshd_config是否允许 agent 转发。
不复杂但容易忽略。

















