powershell中通过proxyjump连接深层内网服务器,核心是用ssh -j参数实现单命令多跳穿透,要求openssh≥7.3、密钥登录配置完备、跳板机启用allowtcpforwarding和allowagentforwarding,并支持命令行临时连接或多跳串联及~/.ssh/config持久化配置。
powershell 中通过跳板机连接深层内网服务器,核心是利用 openssh 自带的 ssh 命令配合 -j(proxyjump)参数,无需额外工具或端口转发脚本。前提是本地 powershell 环境已安装 openssh 客户端(windows 10 1809+ / windows 11 默认自带,可通过 ssh -v 检查版本,需 ≥ 7.3)。
确认并启用 OpenSSH 客户端
若未启用,以管理员身份运行 PowerShell 执行:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0- 重启终端后运行
ssh -V,确认输出类似OpenSSH_9.3p1, LibreSSL 3.3.6
单跳板直连:用 -J 参数一步到位
语法简洁,适合临时连接:
ssh username@inner-host-ip -p 22 -J jumpuser@jump-host-ip:22- 如:跳板机 IP 是
203.101.8.5,账号ops;目标内网服务器 IP 是10.20.30.40,账号admin:ssh admin@10.20.30.40 -p 22 -J ops@203.101.8.5
多跳板串联:用逗号分隔跳板链
适用于“公网跳板 → 内网中转机 → 核心业务机”三层结构:
ssh target-user@target-ip -J miduser@mid-ip:22,jumpuser@jump-ip:22- 顺序必须从外到内:最右边是第一跳(可直接访问的跳板),最左边是最后一跳(通向目标)
- 示例:
ssh app@172.16.1.100 -J core@10.1.2.3,ops@203.101.8.5
持久化配置:写入 ~/.ssh/config 提高复用性
Windows 路径为:C:\Users\当前用户名\.ssh\config(需手动创建该文件)
内容示例:
Host jump
HostName 203.101.8.5
User ops
Port 22
Host mid
HostName 10.1.2.3
User core
Port 22
ProxyJump jump
Host appserver
HostName 172.16.1.100
User app
Port 22
ProxyJump mid
配置完成后,只需运行:ssh appserver —— 即自动按 jump → mid → appserver 链路穿透
补充说明
如果跳板机或目标机使用非标准端口、密钥登录,或需指定私钥路径,在 config 中添加 IdentityFile 和 Port 即可;ProxyJump 本身不处理认证,所有用户密码/密钥仍由对应 Host 段独立定义。











