remote-ssh连接成功但卡在“installing vs code server”是因为远程server部署失败,需确保远程有curl/wget、/tmp和~/.vscode-server可执行、能访问update.code.visualstudio.com或手动部署对应commit-id的server包。

能连上不代表能开发——Remote-SSH 连接成功只是第一步,真正卡住你的,是远程 server 部署失败、插件没装对位置、或 ~/.vscode-server 被挂载为 noexec。
为什么 ssh 命令能连,VSCode 却卡在 “Installing VS Code Server…”
VSCode 不是复用你终端里的 SSH 会话,而是用它启动一个远程后台进程(vscode-server),这个进程要下载、解压、执行。一旦远程环境缺东西,就静默失败。
- 远程机器必须有
curl或wget(检查:which curl;没有就运行sudo apt install curl) -
/tmp目录必须可写可执行(某些容器或加固系统会禁用noexec) - 家目录下的
~/.vscode-server路径不能是noexec挂载(常见于企业服务器,运行mount | grep home看输出里有没有noexec) - 首次连接时,远程需能访问
https://update.code.visualstudio.com(国内云服务器常因网络策略失败;可手动下载 tar 包传上去,路径为~/.vscode-server/bin/<commit-hash>/</commit-hash>)
~/.ssh/config 配错一个空格,Remote-SSH 就不认
VSCode 的 Remote-SSH 完全依赖本地 ~/.ssh/config 文件解析主机列表,格式敏感,不报错但直接忽略整段。
-
Host必须独占一行,后面跟别名(如my-cloud),不能带冒号或空格 -
HostName(注意是大写 H 和 N)、User、Port、IdentityFile每个关键字严格区分大小写,且不能缩进 -
IdentityFile路径必须是绝对路径(~可展开,但不要用$HOME);私钥权限必须是600(chmod 600 ~/.ssh/id_rsa) - 别在配置块中间加空行或中文注释——VSCode 解析器会跳过后续字段
远程 Python/Node.js 插件不生效?因为它们根本没装到服务器上
你在本地装的 Python、Prettier、ESLint 插件,默认只跑在本地,对远程文件无效。语言服务、格式化、调试器都得在远程进程里运行。
- 连接成功后,在左侧扩展面板顶部,切换到
SSH: my-cloud分类(不是“已安装”) - 搜索并安装插件时,留意右下角是否显示
Install on SSH: my-cloud—— 点它,不是点“Install” - Python 解释器路径必须设为远程绝对路径,比如
"python.defaultInterpreterPath": "/usr/bin/python3",不能写./venv/bin/python(相对路径在远程上下文里会错) - 编辑器设置(
settings.json)中避免任何本地路径,例如"files.exclude"里的模式可以,但"terminal.integrated.env.linux"若引用本地变量会失效
连接后终端报错 “Command 'Developer: Toggle Developer Tools' resulted in an error”
这不是连接问题,而是本地启用的插件试图在远程环境加载,但没声明支持 server-side 运行。VSCode 会尝试兼容,结果就是命令不可用或崩溃。
- 右下角状态栏点击
Remote [SSH]→ 选择Disable All Installed Extensions - 只在
SSH: my-cloud分类下启用明确标有 “Remote Extension” 或 “Runs on: SSH” 的插件 - 如果用了自定义 shell(如 zsh + oh-my-zsh),确保
~/.zshrc里没覆盖PATH导致python或node找不到;必要时在settings.json中显式设置"terminal.integrated.shellArgs.linux"
最易被忽略的是:远程服务器的 sshd_config 是否允许公钥认证(PubkeyAuthentication yes),以及云厂商安全组是否放行了你配的端口——这两项不满足,VSCode 甚至不会弹出密码框,只会显示“Failed to connect”。











