远程开发插件版本不兼容本质是本地vs code、远程vscode-server、插件三者engines.vscode声明或二进制依赖不匹配;remote-ssh卡在“starting vs code server”是因远端server二进制与本地code --version(含patch号)不一致,需删~/.vscode-server后重连触发严格匹配部署。

远程开发插件版本不兼容,本质是本地 VS Code、远程 vscode-server、插件三者之间 engines.vscode 声明或二进制依赖不匹配——不能只改一个地方就以为搞定。
Remote-SSH 插件安装失败或卡在 “Starting VS Code Server”
这不是网络慢,而是远端 vscode-server 二进制和本地 VS Code 主版本不一致。VS Code Remote 会自动拉取与本地 code --version 完全匹配的 server 版本(含 patch 号),一旦远端已有旧版残留,就会拒绝启动。
- 先确认本地版本:
code --version,记下完整字符串(如1.102.3) - 登录远程服务器,删掉旧 server:
rm -rf ~/.vscode-server(别只删bin或dist子目录) - 断开 Remote 连接,重新连接——VS Code 会重新下载并部署严格匹配的 server
- 如果仍失败,检查远端
~/.vscode-server/logs/下最新日志,搜索commit或glibc错误
离线安装的插件在 Remote 环境里不生效
你手动装的 .vsix 插件,可能只被装到了本地(~/.vscode/extensions/),而 Remote 模式下,插件必须部署到远端才能运行。更麻烦的是,有些插件(如 ms-python.python)会在远端首次启用时动态下载语言服务器二进制,这个过程会校验远端系统库(glibc、libstdc++)是否达标。
- 安装插件前,确保它支持 Remote:插件详情页看 “Runs on: Remote” 标签,没标的基本不建议硬上
- 用命令面板运行
Extensions: Install from VSIX时,注意窗口右下角是否显示 “Installing on SSH: [host]” —— 如果显示 “Installing on UI” 就说明装错了位置 - 若插件依赖原生模块(比如含
node-gyp编译步骤),远端需提前装好:build-essential、python3、nodejs(≥16) - 远端
glibc太老(如 CentOS 7 的 2.17)?别升级glibc,风险太高;改用静态链接版 VS Code Server(需从 GitHub Actions 构建产物中手动提取)
插件报 “not compatible with Code 'x.x.x'” 却已连上 Remote
错误来自插件包内的 package.json,但此时问题不在远端,而在你装的插件本身声明了过严的 engines.vscode 范围。例如当前 VS Code 是 1.102.3,而插件写的是 "^1.103.0",它连加载都进不去。
- 优先点插件右下角
⋯ → Install Another Version…,选一个明确标注支持你本地版本的历史版(不是所有插件都提供) - 若选项灰显,下载对应
.vsix后用解压工具打开,找到extension/package.json(不是根目录那个),把"vscode": "^1.103.0"改成"vscode": ">=1.102.0 - 保存后重打包为 zip,后缀改回
.vsix,再通过Extensions: Install from VSIX安装 - 改完仍不启用?执行
Developer: Reload Window,而不是单纯重启 Remote 连接
真正容易被忽略的是:Remote 插件的兼容性不是单点问题。它横跨本地版本、远端系统库、插件元数据、语言服务器二进制四个层面,任何一层断掉都会表现为“不兼容”。排查时别跳步,先 code --version,再 ldd --version,再翻 extension/package.json,最后才动远端 ~/.vscode-server 目录。











