VsCode ssh代理设置
本文适用
- 终端or VsCode 连接需要vpn的服务器(终端ssh走代理)
- 终端可以ssh连接服务器但 VsCode 无法连接
- 感兴趣 VsCode ssh功能的部署理念
前置
vscode已经安装完成、Remote-ssh插件已配置好,设备为 Windows+VsCode 和 需要VPN连接的Linux服务器
终端走代理
先要保证 服务器能够ssh正常连接,部分VsCode ssh失败可能仅仅因为网络问题,如何判断ssh失效是否是网络问题造成的呢:终端进行简单的ssh连接,连接失败则是网络问题(适用于VsCode无法ssh连接时网络问题排除)
ssh + usr@服务器ip
若终端ssh失败则可能是网络有以下问题
终端未走代理
区别于普通服务器的ssh配置,需要走代理的服务器多了一行 ProxyCommand设置,windows用户需要去官网下载 ncat, 并记下 ncat.exe 文件的绝对路径,我的是ProxyCommand D:\Program Files\Git\usr\bin\ncat.exe
Host name
HostName server-IP
User 用户名
ProxyCommand D:\Program Files\Git\usr\bin\ncat.exe -x [代理ip号]:[代理端口号] %h %p
VPN节点不稳定
进行了上面一步后若终端依旧不可以ssh连接服务器,大概率是vpn节点选择的问题。多尝试,换不同节点。
终端连接成功后,尝试使用 vscode 进行 ssh 连接
服务器端的 vscode server
为什么要在服务器端部署 vsCodeSever
原因其实很多,最直接的时减少网络延迟
右侧为vscode中ssh的实现方式
- 本机VS Code:用户在本地计算机上运行的代码编辑器。
- 服务器:包括远程服务器和
VS Code Server
,后者是在服务器上运行的一部分 VS Code 服务,负责处理特定任务。
流程:
- SSH 登录:VS Code 通过 SSH 连接到远程服务器。
- 文件格式化请求:VS Code 向
VS Code Server
发送文件格式化请求。 - 文件格式化:
VS Code Server
在服务器端完成文件的格式化操作。 - 响应:完成文件格式化后,结果返回到 VS Code。
优势分析:
更多的处理在远程服务器上进行,减少了传输延迟,适合高延迟网络或处理大型项目的场景。
- 减少数据传输:当 VS Code Server 部署在服务器上时,大部分计算和处理任务都在服务器端完成,避免了频繁的数据传输,特别是在处理大文件或复杂任务时。这可以显著减少网络延迟,提高整体操作的响应速度。
- 减少本地资源消耗:处理密集型任务(如代码分析、格式化、编译)时,使用服务器的计算资源,可以减轻本地计算机的负载,尤其对于资源有限的设备(如低配笔记本)非常有利。
如何在服务器端部署
分为离线和在线
在线部署
如果一切顺利,在线部署约等于:打开vscode\ssh配置\ssh连接 就好了,但是,笔者碰到了终端ssh连接成功、vscode连接失败的情况。在明白vscode 的ssh功能依赖 服务器端VS Code Server
的原理后,我们可以更有针对性地看连接出错时的终端报错
删除残余
尝试把服务器端的vscode-server删掉。 其原理是怀疑vsCode server的版本或配置异常、或者是部署到一半就冲突了!
服务器上排查是否有 ~/.vscode-server 隐藏文件夹
ls -a
mkdir: cannot create directory ‘/home/your_username/.vscode-server’: File exists
服务器上命令行删除
rm -rf ~/.vscode-server
若之前有尝试用离线方式部署但未成功or失效的,将类似的文件删掉
重新连接
vscode将会在本机ssh连接服务器的同时,在已经清理完成的服务器上部署新的、合适的 vscode server
离线部署
参考如下
http://t.csdnimg.cn/jmcGW