SSH通过ProxyJump配置跳板机链路实现一键远程访问,需满足OpenSSH≥7.3、密钥登录且权限600、sshd_config启用Forwarding并禁用密码登录;~/.ssh/config中逐跳声明ProxyJump和ForwardAgent yes,并用ssh-agent透传密钥。

SSH 远程连接通过跳板机(Bastion Host)访问内网服务器,核心是用 ProxyJump 实现自动多跳,而不是手动登录中转。配置关键不在命令行临时拼接,而在 ~/.ssh/config 文件——它统一管理所有连接逻辑,让 ssh target 一键穿透,同时支持 scp、sftp、VS Code Remote-SSH 等全部工具。
必须先满足三个硬性前提
否则配置写得再漂亮,连接也会失败:
- 本地和每台跳板机(含目标服务器)的 OpenSSH 版本 ≥ 7.3(运行
ssh -V和sshd -V 2>&1 | head -1分别确认); - 每段链路已启用密钥登录,且私钥权限严格为
600(chmod 600 ~/.ssh/id_*); - 所有跳板机的
/etc/ssh/sshd_config中开启AllowTcpForwarding yes和AllowAgentForwarding yes,并禁用密码登录(PasswordAuthentication no)。
~/.ssh/config 标准写法(三层链路示例)
假设路径是:本地 → jump1(公网跳板)→ jump2(内网中转)→ target(最终服务器)
Host jump1
HostName 203.0.113.10
User admin
IdentityFile ~/.ssh/id_ed25519_jump1
ForwardAgent yes
Host jump2
HostName 10.1.1.20
User ops
IdentityFile ~/.ssh/id_ed25519_jump2
ProxyJump jump1
ForwardAgent yes
Host target
HostName 172.16.5.100
User appuser
IdentityFile ~/.ssh/id_ed25519_target
ProxyJump jump2注意要点:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- 每个
Host块顶格写,字段用空格缩进(禁用 Tab); -
ProxyJump的值只能是前一跳的Host别名(如jump1),不能写 IP 或带用户; -
ForwardAgent yes必须逐跳显式声明,否则 ssh-agent 无法透传到最内层; - 配置完立即执行
chmod 600 ~/.ssh/config,否则 SSH 直接忽略该文件。
让认证真正穿透到最内层
仅配 ProxyJump 不够,需配合 ssh-agent:
- 启动 agent 并加载全部私钥:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519_jump1 ~/.ssh/id_ed25519_jump2 ~/.ssh/id_ed25519_target
- 登录
target后执行ssh-add -l,若列出本地私钥指纹,说明 agent 已成功透传,git clone、rsync等依赖密钥的操作才能正常工作。
验证是否生效
直接运行:
ssh target
能免密登录即链路通;再在 target 上执行 ssh-add -l 确认密钥可见,就完成了安全、可溯、私钥不离本机的完整跳板链路。

















