Remote-SSH卡在“Installing VS Code Server”主因是新旧版本vscode-server目录结构或签名不兼容导致校验失败;须同步清理本地与远程的~/.vscode-server目录,且code-server必须置于bin/<commit-id>/下;VS Code≥1.99还强制要求glibc≥2.28及libstdc++≥GLIBCXX_3.4.22,旧系统需降级客户端至≤1.98.2;插件v0.110.x存在进程残留Bug,应优先执行“Kill VS Code Server on Host”;国内下载失败时应手动下载对应commit-id的server包并正确解压。

Remote-SSH 插件更新后卡在 “Installing VS Code Server”
这基本不是网络慢,而是新版插件尝试复用远程已有的 ~/.vscode-server 目录,但新旧版本二进制签名或目录结构不兼容,导致校验失败后静默中断。
常见现象包括:Corrupted zip file、Cannot read property 'length' of undefined、反复重试后停留在“Acquiring lock”。
- 必须同时清理本地缓存(
~/.vscode-server)和远程目录(~/.vscode-server),只删一边会继续拉取/复用损坏包 - VS Code 1.86+ 改了
bin/<commit-id>内部结构,残留旧版会导致新客户端拒绝启动 - 别手动解压到
~/.vscode-server/根目录——code-server必须放在~/.vscode-server/bin/<commit-id>/下,否则报Cannot find module 'vs/server/main'
连接报错 “远程主机不满足运行 VS Code Server 的先决条件”
这是 2025 年 3 月起(VS Code ≥1.99)引入的硬性检查:远程服务器必须满足 glibc ≥ 2.28 和 libstdc++ ≥ GLIBCXX_3.4.22。CentOS 7、Ubuntu 18.04 等旧系统大概率触发此错误。
- 运行
ldd --version和strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX确认实际版本 - 若确实低于要求,升级系统库风险高(尤其生产环境),更稳妥的是降级 VS Code 客户端至 ≤1.98.2,并禁用自动更新
- 即使库版本达标,某些发行版 patch 后未更新符号表,也可能误报;此时删掉
~/.vscode-server强制重装常能绕过校验缓存
Remote-SSH 插件自身 Bug 导致连接挂起
部分新版 Remote-SSH(如 v0.110.x 系列)存在后台进程管理缺陷:断开后残留 vscode-server 进程、锁文件未释放、TCP 转发状态异常,导致后续连接卡死或提示 administratively prohibited。
- 优先执行
Remote-SSH: Kill VS Code Server on Host命令,比手动pkill更干净 - 若仍无效,用终端 SSH 登录后运行:
rm -rf ~/.vscode-server* /tmp/vscode-* && pkill -f "vscode-server" - 回退插件版本到已验证稳定的
v0.107.2023091115或v0.105.1,避免新版调度逻辑问题
下载 vscode-server 时超时或 404
VS Code 默认从 update.code.visualstudio.com 拉取服务端,国内访问常被限速或拦截,表现为卡在 “Downloading VS Code Server” 后报 connect ETIMEDOUT 或返回空响应。
- 不要改
remote.SSH.env里乱设镜像地址——VSCODE_AGENT_FOLDER不是通用代理开关,设错反而让插件找不到入口 - 正确做法:在本地 VS Code 的 帮助 → 关于 里复制
Commit值,拼出下载链接:https://update.code.visualstudio.com/commit:<commit-id>/server-linux-x64/stable - 下载后上传到服务器,解压到
~/.vscode-server/bin/<commit-id>/,再执行chmod +x ~/.vscode-server/bin/<commit-id>/bin/code-server
远程连接问题往往卡在“看起来像网络问题,其实是版本契约断裂”。最危险的操作是只清理一边缓存、或跳过 commit ID 校验直接覆盖二进制——VS Code 的远程协议对版本一致性极其敏感,差一个字符就拒绝握手。


















