如何通过VSCode实现从指定服务器到内网system2控制器的2跳SSH并打开文件夹?
解决方案:通过跳板服务器在VSCode中访问system2控制器的文件夹
以下是几种可行的方案,核心思路是利用你已能访问的指定服务器作为SSH跳板,让VSCode直接连接到system2控制器:
方案1:使用ProxyJump配置SSH跳板(推荐,适用于OpenSSH 7.6+)
- 打开VSCode的Remote SSH扩展配置文件:
- 在VSCode左侧Remote Explorer中,点击SSH目标列表右上角的齿轮图标,选择打开SSH配置文件。
- 或者直接编辑本地的SSH配置文件:Linux/macOS为
~/.ssh/config,Windows为C:\Users\<你的用户名>\.ssh\config
- 在配置文件中添加system2控制器的跳板配置:
# 保留你已有的指定服务器配置 Host 指定服务器 HostName 指定服务器的公网IP/域名 User 你的用户名 IdentityFile ~/.ssh/你的密钥文件(如果需要) # 添加system2控制器的跳板配置 Host system2控制器 HostName system2的内部IP/主机名 User 你在system2上的用户名 ProxyJump 指定服务器 # 如果system2需要独立密钥,添加IdentityFile配置;如果和指定服务器共用密钥可省略 # IdentityFile ~/.ssh/system2的密钥文件
- 保存配置后,回到VSCode的Remote Explorer,就能看到
system2控制器的选项,点击连接即可在新窗口中直接访问system2的文件夹。
方案2:使用ProxyCommand兼容旧版本OpenSSH
如果你的OpenSSH版本低于7.6,不支持ProxyJump,可以用ProxyCommand替代:
在SSH配置文件中添加:
Host system2控制器 HostName system2的内部IP/主机名 User 你在system2上的用户名 ProxyCommand ssh 指定服务器 -W %h:%p # 密钥配置同方案1
后续操作和方案1一致,直接在VSCode中选择system2控制器连接即可。
方案3:手动在指定服务器上建立端口转发(临时应急)
如果你不想修改SSH配置,可以在已连接的指定服务器终端中执行端口转发命令,然后在本地VSCode通过转发的端口连接system2:
- 在指定服务器的VSCode终端中执行:
ssh -L 2222:system2的内部IP:22 你在system2上的用户名@system2的内部IP
- 打开本地VSCode的SSH配置,添加:
Host system2-local HostName 127.0.0.1 Port 2222 User 你在system2上的用户名
- 连接
system2-local即可访问system2的文件夹,注意关闭终端后转发会失效,适合临时使用。
内容的提问来源于stack exchange,提问作者Aherontas
相关产品推荐
相关产品推荐

