如何解决vscode使用远程资源管理常见问题:远程主机可能不符合 glibc 和 libstdc++ VS Code 服务器的先决条件

在我们使用vscode的远程资源管理功能时,遇到如下问题

LinuxPrereqs\]: 远程主机可能不符合 glibc 和 libstdc++ VS Code 服务器的先决条件 (远程主机不满足运行VS Code服务器的先决条件) 这个问题怎么解决 这个报错通常是因为你的 VS Code 版本过新(通常是 1.99 或更高版本),而你连接的 远程 Linux 服务器系统版本较老(如 CentOS 7、Ubuntu 18.04 等),导致服务器上的核心库(glibc 或 libstdc++)版本过低,无法运行新版的 VS Code 服务端。 这是一个非常普遍的兼容性问题。以下是几种行之有效的解决方案,你可以根据自己的情况选择: #### 方案一:降级 VS Code(最简单、最推荐) 这是目前最快解决问题的方法,因为新版 VS Code(1.99+)强制要求 glibc \>= 2.28,而旧系统很难安全升级 glibc。 1. 下载旧版本: 访问 VS Code 官方下载页面或 GitHub Release 页面,下载 1.98.x 或 1.85.2 版本。 * Windows 用户:推荐下载 `.exe` 安装包(User Installer)。 * 直接下载链接示例(1.98.2): `https://update.code.visualstudio.com/1.98.2/win32-x64-user/stable` (如果是其他系统,请修改对应参数) 2. 安装覆盖: 下载后安装,它会自动覆盖你当前的新版本。 3. 关闭自动更新(关键): 安装完成后,务必关闭自动更新,否则过两天又会自动升到 1.99 导致再次报错。 * 打开 VS Code,进入 设置 (Settings)。 * 搜索 `update`。 * 将 Update: Mode 设置为 `none` 或 `manual`。 * 将 Extensions: Auto Update 设置为 `false`。 #### 方案二:修改 VS Code 远程连接设置(无需降级) 如果你必须使用新版 VS Code,可以尝试强制它使用"静态链接"的服务器版本,这可以绕过 glibc 的版本限制。 1. 在本地 VS Code 中按下 `Ctrl + Shift + P` 打开命令面板。 2. 输入并搜索 Remote-SSH: Settings。 3. 找到 Remote.SSH: Server Install Path 设置项。 4. 将其修改为一个特定的路径,例如 `~/.vscode-server-static`。 5. 重启 VS Code 并重新尝试连接。这会指示 VS Code 下载一个静态编译的服务器版本,对系统库的依赖更少。 #### 方案三:升级远程服务器库(风险较高,不推荐) 如果你有服务器管理员权限,并且服务器环境允许破坏性更新,可以尝试升级系统库。 * Ubuntu/Debian: ``` sudo apt update sudo apt upgrade libc6 libstdc++6 ``` * CentOS/RHEL: ``` sudo yum update glibc libstdc++ ``` **警告** :`glibc` 是 Linux 系统最核心的库,强烈不建议在生产环境或重要服务器上直接升级它。升级失败或版本不兼容极大概率会导致系统崩溃、命令无法使用(连 ls, cd 都报错),甚至无法远程连接。 #### 如何确认问题原因? 你可以登录到远程服务器,运行以下命令查看当前库版本,确认是否低于要求: 1. 检查 glibc 版本: ``` ldd --version ``` *VS Code 1.99+ 要求版本 \>= 2.28。如果显示 2.17 (CentOS 7) 或 2.27 (Ubuntu 18.04),则不满足要求。* 2. 检查 libstdc++ 版本: strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX | tail -n *通常要求 GLIBCXX_3.4.21 或更高。* #### 大概率遇到另一个问题 使用方案一,降级vscode后,大概率会遇到下面这个问题: Unable to negotiate with ip port port: no matching MAC found. Their offer: hmac-sha1 这个问题的核心原因是 SSH 客户端(VS Code 使用的 OpenSSH)与服务器端在"消息认证码(MAC)"算法上无法达成一致。具体来说,我们的服务器(或虚拟机)只提供了较旧且安全性较低的 `hmac-sha1` 算法,而现代版本的 OpenSSH 客户端默认出于安全考虑禁用了该算法,导致双方"无法沟通",从而报错 `no matching MAC found`。最简单的解决方法就是修改本地 SSH 配置(最推荐,无需服务器权限),步骤如下: 1. 打开 VS Code。 2. 按下 `Ctrl + Shift + P` 打开命令面板。 3. 输入并选择命令:`Remote-SSH: Open Configuration File`。 4. 选择你要编辑的配置文件(通常是 `C:\Users\你的用户名\.ssh\config`)。 5. 找到你连接这台服务器(ip)的配置段。 6. 在该配置段中,`MACs +hmac-sha1`。 #### 总结建议 * 如果你是普通开发者,连接的是公司旧服务器或学校的机房:请使用方案一(降级到 1.98 并关闭自动更新),这是最稳妥的。 * 如果你是运维人员,且服务器环境较新但配置有误:可以尝试 方案二。 * 除非万不得已,不要尝试方案三升级 glibc。

相关推荐
FansyMeng16 小时前
VSCode配置anaconda
vscode·python
Anarkh_Lee21 小时前
在VSCode中使用MCP实现智能问数
数据库·ide·vscode·ai·编辑器·ai编程·数据库开发
一心赚狗粮的宇叔1 天前
VScode常用扩展包&Node.js安装及npm包安装
vscode·npm·node.js·web
紫竹苑主1 天前
VS Cose + PlatformIO +ESP32-S3 + ESPIDF开发环境安装卡壳持续等待问题解决
vscode·python·嵌入式硬件·物联网·硬件架构
西木九1 天前
win11 vscode 本地 latex 编译(Elsevier举例)
vscode·latex·学术写作
Sapphire~1 天前
Linux-14 ubuntu 安装 vscode
linux·vscode·ubuntu
嫦娥妹妹等等我2 天前
Visual Studio 2022 版本对决:Community、Professional 与 Enterprise 全方位深度解析
vscode
weixin_660096782 天前
如何关闭vscode中的copilot生成结束后的消息提醒
ide·vscode·copilot
咕噜咕噜啦啦2 天前
ROS入门
linux·vscode·python