【保姆级教程】VS Code Remote-SSH 连接失败终极解决方案:glibc版本过低、离线安装与SSH通道禁止

「Kurator·云原生实战派」主题征文,赢华为FreeBuds等好礼 10w+人浏览 221人参与

本教程完美解决 VS Code 连接华为鲲鹏/麒麟 V10 服务器时的 glibc 版本过低及 LinuxPrereqs 报错。针对内网离线环境,详细演示“VS Code 1.85.2 便携版 + 离线手动部署 Server 端”的全流程,并附带解决 SSH 通道被禁(administratively prohibited)导致连接卡死的详细步骤。无需升级系统库,亲测有效。

适用人群

  • 正在使用华为鲲鹏 (KunLun/Ascend)、麒麟 (Kylin V10)、CentOS 7 等国产或老旧 Linux 服务器的开发者。
  • 遇到报错 LinuxPrereqs,提示 glibc 版本低于 2.28 或 libstdc++ 版本过低。
  • 服务器处于内网,无法连接微软更新服务器 (wget 报错)。
  • VS Code 一直卡在“正在打开远程”,日志提示 administratively prohibited

🔍 问题分析

自从 VS Code 1.86 版本发布以来,微软提高了对远程 Linux 服务器基础库的要求(glibc >= 2.28)。很多国产服务器(如麒麟 V10)或生产环境服务器出于稳定性考虑,基础库版本较低,导致最新版 VS Code 无法直接连接。

此外,企业级服务器通常有防火墙限制(无法下载 Server 端)或 SSH 安全限制(禁止 TCP 转发),这形成了“三重关卡”。

本文将教你如何不重装系统、不升级服务器库、不影响本机现有 VS Code,通过“便携版+离线部署”完美解决所有问题。


🛠 第一步:准备“特供版” VS Code (电脑端)

为了不影响你平时用的最新版 VS Code,我们将在电脑上额外部署一个 1.85.2 便携版(这是支持旧版 Linux 的最后一个版本)。

  1. 下载专用版本

  2. 解压安装

    • 将下载好的 ZIP 包解压到一个新的文件夹,例如 D:\VSCode_Legacy
  3. 制作便携版 (关键步骤!)

    • 进入解压后的文件夹(能看到 Code.exe 的那个目录)。
    • 右键 -> 新建 -> 文件夹,将文件夹命名为 data
    • 原理:只要目录下有 data 文件夹,VS Code 就会把所有插件和配置存这里,与你电脑上原来的 VS Code 互不干扰。
  4. 禁止自动更新

    • 双击 Code.exe 启动。
    • 点击左下角齿轮 ⚙️ -> Settings (设置)
    • 搜索框输入 update mode
    • Application: Update Mode 改为 none
    • (这一步不做,重启后它会自动升级,一切白干)

📦 第二步:手动下载 Server 端组件 (电脑端)

因为服务器没网或连不上微软,我们需要在电脑上先下载好 Server 组件。

  1. 确认 Commit ID

    • VS Code 1.85.2 的唯一 Commit ID 是:8b3775030ed1a69b13e4f4c628c612102e30a681
  2. 下载对应架构的包


🚀 第三步:上传并离线安装 (服务器端)

我们需要把刚才下载的 .tar.gz 文件传到服务器并“伪装”成自动安装的样子。

1. 上传文件

你可以用 Xftp/WinSCP 拖拽上传。如果你不想装软件,直接用 Windows 自带的 CMD 命令:

  • Win + R,输入 cmd 回车。
  • 输入以下命令(注意替换路径):
    scp "你的文件路径\vscode-server-linux-arm64.tar.gz" root@你的服务器IP:/root/
    
    (输入密码后等待传输完成)

2. 执行安装命令 (傻瓜式复制)

请使用 Xshell 或 Putty 登录你的服务器,依次复制并执行以下 4 行命令(一行一行执行,不要出错):

# 1. 创建 VS Code 专用的版本目录
mkdir -p ~/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681

# 2. 进入该目录
cd ~/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681

# 3. 解压文件 (假设你传到了 /root/ 下,注意 --strip-components 1 必不可少)
tar -zxf /root/vscode-server-linux-arm64.tar.gz --strip-components 1

# 4. 创建完成标记 (告诉 VS Code 我装好了,别再下载了)
touch 0

🔒 第四步:解决 “administratively prohibited” (最隐蔽的坑)

如果你连接时日志报错 channel 3: open failed: administratively prohibited,说明服务器禁止了 SSH 隧道。

必须修改 SSH 配置(请跟随操作):

  1. 打开配置文件

    vi /etc/ssh/sshd_config
    
  2. 修改配置 (vi 操作指南)

    • 进入编辑器后,按键盘 (向下箭头) 找到 AllowTcpForwarding 这一行。
    • 如果这行前面有 #,光标移到 # 上按 x 键删除它。
    • 光标移到后面的 no 上。
    • 按一下 i 键(进入编辑模式)。
    • no 删掉,改成 yes
    • 最终这行应该是: AllowTcpForwarding yes
  3. 保存退出

    • 按一下 Esc 键。
    • 输入 :wq (英文冒号+w+q)。
    • 回车
  4. 重启 SSH 服务 (让修改生效)

    systemctl restart sshd
    

✅ 第五步:最终连接与验证

  1. 打开你刚才配置好的 VS Code 1.85.2
  2. 安装 Remote - SSH 插件。
  3. 重要操作:按下 F1 键,输入 Remote-SSH: Kill VS Code Server on Host...,选择你的服务器IP并回车。(这一步是为了清理之前失败的缓存进程)。
  4. 点击左下角的绿色图标 ><,选择连接主机。

最后就可以vscode爽用服务器了


💡 附:华为昇腾/鲲鹏开发推荐插件

在旧版 VS Code 连接成功后,建议安装以下插件提升效率:

  • Remote - SSH: 必装。
  • SFTP (liximomo): 方便右键直接上传/下载文件。
  • Resource Monitor: 在底部状态栏实时显示服务器 CPU/内存占用。
  • Python / C++: 开发必备(注意:如果在旧版 VS Code 中插件报错,请在插件页面点击“安装另一个版本”,回退到 2023 年的版本)。
<think>嗯,用户需要解决在Ubuntu 18.04下使用VSCode Remote-SSH时因glibc/libstdc++版本不足导致的报错问题。这个问题很经典,本质是VSCode版本(1.86+)要求glibc≥2.28,而Ubuntu 18.04默认只有2.27。 用户引用的资料已经很全面了,基本覆盖了主流解决方案。不过需要帮ta梳理优先:升系统最彻底但风险最高,降VSCode最安全但会损失新功能,静态编译方案折中但操作复杂。考虑到用户还在用18.04,可能生产环境不宜大动,应该优先推荐降方案。 注意到引用里提到两个关键细节:一是降后必须禁用自动更新,否则会重新升;二是Remote-SSH扩展也要同步降到0.107.1版本。用户容易忽略后者,要特别强调。 突然想到还有个隐藏方案——在服务器端手动替换libstdc++.so.6,但引用里没提。这个方案虽然能临时解决,但可能影响其他程序稳定性,还是不提为妙。用户明显需要稳定方案。 最后补充的第三方方案VSCodium其实不错,但用户没提过这个,可能不愿折腾新工具,放在备选位置比较合适。回复时要记得强调"永久禁用更新"这个关键操作步骤,很多用户降失败都是因为漏了这一步。 </think>以下是针对 Ubuntu 18.04 下 VSCode Remote-SSH 因 **glibc/libstdc++ 版本**报错的完整解决方案,综合引用信息整理为三类方法: --- ### ⚙️ 方案一:降 VSCode(推荐) **适用场景**:需快速恢复远程开发,可接受使用旧版 VSCode。 ```bash # 1. 卸载当前 VSCode(保留配置) sudo apt remove code # 2. 下载 VSCode 1.85.2 兼容版本 wget https://update.code.visualstudio.com/1.85.2/linux-deb-x64/stable -O code_1.85.2.deb # 3. 安装旧版 sudo dpkg -i code_1.85.2.deb # 4. 禁用自动更新(关键!) # 打开 VSCode → 设置 → 搜索 `update.mode` → 改为 `none` ``` > **降配套操作**: > - Remote-SSH 扩展需降至 **v0.107.1**(在扩展面板点击齿轮 → 安装其他版本)[^2][^3] --- ### ️ 方案二:升远程主机依赖(彻底解决) **适用场景**:可操作远程服务器且允许系统升。 ```bash # 1. 升 glibc(需切换至较新 Ubuntu 源) sudo sed -i 's/bionic/focal/g' /etc/apt/sources.list # 临时替换为 Ubuntu 20.04 源 sudo apt update sudo apt install libc6 libstdc++6 # 2. 验证版本(需满足 glibc>=2.28) ldd --version # 查看 glibc 版本 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX # 确认 libstdc++ 包含 GLIBCXX_3.4.25 ``` > **注意**: > Ubuntu 18.04 官方源最高仅支持 glibc 2.27,此操作可能引入兼容风险[^1][^5]。更稳定做法是升到 Ubuntu 20.04+。 --- ### 📦 方案三:使用便携版 VSCode(绿色安装) **适用场景**:需同时保留新版和旧版 VSCode。 1. 下载 **1.85.2 便携版**:[官方存档](https://update.code.visualstudio.com/1.85.2/win32-x64-archive/stable)(Linux 选 `linux-x64.tar.gz`) 2. 解压后运行: ```bash ./code --user-data-dir=./data --extensions-dir=./extensions ``` 3. 安装 Remote-SSH v0.107.1(方法同方案一)[^3] --- ### 🔍 故障排查补充 若仍报错,检查远程主机残留文件: ```bash # 删除旧版 VSCode 服务器缓存 rm -rf ~/.vscode-server/bin/* ``` 重新连接时会自动下载兼容版本[^5]。 --- ### 📌 总结建议 | **方案** | 复杂度 | 稳定性 | 功能牺牲 | |---------------|--------|--------|----------------| | 降 VSCode | ★★☆ | 高 | 无法使用新特性 | | 升远程主机 | ★★★ | 中 | 需系统变更 | | 便携版 | ★★★ | 高 | 多版本管理 | > **首选推荐**:方案一(降+禁用更新),适合生产环境快速恢复[^2][^3]; > **长期建议**:升远程服务器系统至 Ubuntu 20.04 LTS 以上[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值