Cole’s Blog

离线环境安装vscode ssh-remote

← 返回博客
开发 689 字 · 2 分钟 10 次阅读

获取本地 VS Code 的 Commit ID → 在外网下载对应版本的服务端包 → 传入内网服务器并解压到指定目录**。需要注意的是,较新版本的 VS Code(约 1.82.0 之后)目录结构有所变化,操作时需留意。

第一步:获取本地 VS Code 的 Commit ID

在你用于连接内网的本地电脑上,打开 VS Code,点击菜单栏 帮助 → 关于(Help → About),找到并复制 Commit ID(一串长哈希值)。

第二步:在外网下载匹配的 vscode-server

在一台有外网的机器上,用上一步拿到的 Commit ID 替换下面链接中的 <COMMIT_ID>,下载 Linux x64 版本的服务端压缩包:

wget https://update.code.visualstudio.com/commit:<COMMIT_ID>/server-linux-x64/stable -O vscode-server-linux-x64.tar.gz

如果你在浏览器中操作,直接访问该 URL 即可触发下载。请确保下载的包与本地 VS Code 版本严格对应,否则连接时仍会尝试重新下载。

第三步:将包传入内网服务器并解压

通过 U 盘、内网文件服务器或 scp 等方式,把 vscode-server-linux-x64.tar.gz 传到目标内网 Linux 服务器。

对于较旧版本的 VS Code(大致 1.82 之前): 直接解压到 ~/.vscode-server/bin/<COMMIT_ID>/ 目录下即可:

mkdir -p ~/.vscode-server/bin/<COMMIT_ID>
tar -xzf vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/<COMMIT_ID> --strip-components=1

完成后,用 Remote-SSH 重新连接,VS Code 检测到服务端已存在,就会跳过下载步骤。

第四步:针对新版 VS Code 的额外处理(如遇连接失败)

从 VS Code 1.82.0 左右开始,Remote-SSH 的引导逻辑有变化,仅解压到旧目录可能不够。如果连接卡在 “Installing VS Code Server” 或报错,请按新版结构处理:

  1. 下载 CLI 组件(同样在外网):除了 server 包,还需要下载一个 CLI 包:
    wget https://code.visualstudio.com/sha/download?build=stable\&os=cli-alpine-x64 -O vscode_cli_alpine_x64_cli.tar.gz
    
  2. 在内网服务器上放置文件:将上述 CLI 包重命名并放到指定位置,作为“已完成”标记:
    cp vscode_cli_alpine_x64_cli.tar.gz ~/.vscode-server/vscode-cli-<COMMIT_ID>.tar.gz.done
    
  3. 解压 server 包到新版目录:
    mkdir -p ~/.vscode-server/cli/servers/Stable-<COMMIT_ID>/server
    tar -xzf vscode-server-linux-x64.tar.gz --strip-components=1 -C ~/.vscode-server/cli/servers/Stable-<COMMIT_ID>/server
    
  4. 重启本地 VS Code 并重新连接。这个流程在多个社区讨论中被验证可行。

关键注意事项

  • 版本必须严格匹配:本地 VS Code 的 Commit ID 是唯一标识。如果内网机器上的服务端与本地版本不一致,Remote-SSH 会判定为无效,并再次尝试联网下载。
  • 系统依赖:较新的 vscode-server 通常要求目标服务器的 glibc 版本不低于 2.28(大致对应 Ubuntu 20.04+ / CentOS 8+)。如果内网服务器是 CentOS 7 等老系统,可能需要降低本地 VS Code 版本以匹配旧版服务端。
  • 权限:确保解压后的文件属于当前 SSH 登录用户,且 ~/.vscode-server 目录有正确的读写权限。

评论 0

登录 后参与评论

还没有评论。