能否让VSCode的remote-ssh插件通过上游工作站代理建立SSH连接
VSCode Remote-SSH通过现场工作站跳板转发配置方案
完全可以实现,核心是将现场工作站配置为SSH跳板机,VSCode的所有Remote-SSH连接会默认复用系统SSH配置的跳板规则,无需修改VSCode本身的运行逻辑。
前置准备
- 现场工作站需要有公网可访问的IP/动态域名,或远程办公的mac与现场工作站已通过异地组网实现网络互通
- 现场工作站ufw开放SSH服务端口(默认22,自定义端口需替换),仅允许你的远程mac公网IP访问,配置示例:
ufw allow from [远程mac的公网IP] to any port 22 ufw reload - 确保现场工作站本身可以正常SSH连接到目标科研计算集群
本地mac端SSH配置
VSCode Remote-SSH默认会读取用户目录下的SSH配置文件,直接在该文件中配置跳板规则即可覆盖所有VSCode发起的SSH请求:
- 编辑mac本地
~/.ssh/config文件,新增以下配置:
# 先配置现场工作站的SSH连接信息 Host site-workstation HostName [现场工作站的公网IP/域名] User [现场工作站的登录用户名] Port 22 # 如修改了SSH默认端口请替换为实际端口 IdentityFile ~/.ssh/[登录现场工作站的本地私钥文件名] # 推荐用密钥登录避免每次输密码 # 配置科研计算集群的连接规则,自动走跳板转发 Host hpc-cluster HostName [科研计算集群的内网地址] # 填写现场工作站可正常访问的集群IP/域名即可 User [集群的登录用户名] IdentityFile ~/.ssh/[登录集群的本地私钥文件名] ProxyJump site-workstation
说明:ProxyJump是OpenSSH 7.3+版本自带的跳板参数,macOS 11.6预装的SSH版本完全支持,无需额外安装工具。
VSCode操作步骤
- 打开VSCode的Remote-SSH面板,刷新远程列表后会自动识别刚才配置的
hpc-cluster选项 - 直接点击该选项发起连接即可,所有SSH流量会自动通过现场工作站转发,无需启动Cisco AnyConnect VPN
可选优化配置
- 如果现场工作站没有固定公网IP,可通过内网穿透工具将SSH端口映射到公网,只需在ufw中放行对应穿透端口即可
- 如果不想把集群的私钥存到本地mac,可将私钥存储在现场工作站,然后在
hpc-cluster的配置中新增一行ForwardAgent yes,即可直接复用现场工作站上的SSH密钥 - 如果需要让所有本地发起的SSH请求都走现场工作站转发,可在配置文件末尾新增全局规则:
Host * ProxyJump site-workstation
注意:全局规则会匹配所有SSH连接,如有不需要走跳板的其他SSH服务,需要将对应Host的配置放在该全局规则之前。
内容的提问来源于stack exchange,提问作者mkk
相关产品推荐
相关产品推荐

