Remote-SSH本质是远程运行完整开发环境,本地仅渲染UI;首次卡在“Installing VS Code Server”需手动部署对应commit ID的vscode-server包并严格设置权限(~/.vscode-server为700、code-server可执行、~/.ssh/config为600)。

VSCode 通过 Remote-SSH 连接远程服务器,本质不是“转发终端”,而是把整个开发环境(文件系统、Shell、扩展进程、调试器)都搬到远端运行——本地只负责渲染 UI 和转发输入。一旦忽略这个前提,几乎所有连接失败、扩展不生效、终端命令报错的问题,都会反复出现。
Remote-SSH 首次连接卡在 “Installing VS Code Server” 怎么办
这不是网络慢,是远程服务器压根没下载到 vscode-server 二进制包。VSCode 默认从 GitHub Releases 拉取,国内或内网环境大概率超时或被拦截。
- 先在远程终端执行
curl -I https://update.code.visualstudio.com,确认返回HTTP/2 200 - 如果失败,手动部署:打开本地 VS Code 的「关于」窗口,复制 commit ID(如
6c3e3dba23e8fadc360aed75ce363ba185c49794) - 去
https://update.code.visualstudio.com/download?build=stable&os=linux-x64找对应 commit 的tar.gz包 - 解压后重命名文件夹为该 commit ID,上传到远程的
~/.vscode-server/bin/目录下 - 确保
~/.vscode-server/bin/<commit-id>/bin/code-server</commit-id>可执行:chmod +x ~/.vscode-server/bin/<commit-id>/bin/code-server</commit-id> - 整个
~/.vscode-server目录权限必须是用户私有:chmod 700 ~/.vscode-server,否则 server 启动直接拒绝
~/.ssh/config 写好了,VSCode 却不显示 Host 名
VSCode 读取 SSH 配置极其严格,格式错一个空格就失效,且不报错。
-
Host行必须顶格,后面不能跟空格或注释;子字段如HostName、User必须缩进,且只能用空格,不能用 Tab - Host 别名不能含下划线(
my_server会被跳过),推荐用短横线(my-server) - 确认文件路径是
~/.ssh/config(不是config.txt或其他路径),且权限为600:chmod 600 ~/.ssh/config - 改完配置后,不要点左下角绿色按钮刷新——要重新调用命令面板:
Ctrl+Shift+P→Remote-SSH: Connect to Host
扩展装了但 Python / Git / Terminal 不工作
Remote-SSH 下的扩展分本地和远程两类。只有标有 “Run on Remote” 的扩展才会在服务器上启动进程,比如 Pylance、GitLens、Python;主题、快捷键类则只在本地跑。
- 连接成功后,在扩展面板搜索框输入
@installed,再加@sort:installDate,看哪些扩展出现在SSH: <host></host>分组里 - 如果没出现,右键该扩展 → 「Install in SSH:
」手动安装 - 终端不识别
git或python?检查远程$PATH是否包含对应路径,必要时在~/.bashrc或~/.zshrc中补全,然后重启 VS Code 远程会话 - 中文乱码?在远程终端执行
export LANG=zh_CN.UTF-8,并写入 shell 配置文件
最常被跳过的环节是权限控制:整个 ~/.vscode-server 目录不能有 group/other 写权限,~/.ssh/config 必须是 600,私钥文件也得是 600。这些限制不是建议,是 vscode-server 启动时硬性校验的条件,跨不过去就起不来。


















