VSCode如何配置Remote SSH_远程服务器开发完整教程
VSCode远程开发需确保本地SSH命令、远程SSH服务、网络通畅及vscode-server正确部署。手动验证SSH可达,完善~/.ssh/config配置,解决下载或解压失败,远端单独安装扩展,并注意文件权限与挂载异常问题。
能连上、能编辑、能调试,才算是真正的远程开发。很多人以为装上 Remote-SSH 插件就万事大吉,其实它依赖的是本地 ssh 命令、远程 SSH 服务、网络通路,以及 vscode-server 在远端的正确部署——四个环节缺一不可。任意一环断掉,你就会卡在“Connecting…”或者“Installing VS Code Server…”那里干着急。

确认本地 ssh 命令能通,再动 VSCode
VSCode 的 Remote-SSH 扩展在底层直接调用你系统的 ssh 命令,而不是自己实现协议。所以第一步,永远是手动验证一下:
- 在终端(PowerShell / Terminal / iTerm 都行)里执行
ssh user@host -p 2222(如果端口不是 22,必须带上-p) - 如果报
command not found: ssh:Windows 用户需要去“设置 → 可选功能”里启用 OpenSSH 客户端;macOS/Linux 一般自带,但某些精简发行版可能没装,记得补上 - 如果报
Connection refused或直接超时:检查远程的sshd是否在运行(systemctl status sshd),防火墙有没有放行端口,云服务器的安全组是否开放了对应端口 - 如果能登录进去并且看到了 shell,说明网络和认证都没问题,这时候 VSCode 连不上,基本就是配置或部署的问题了
~/.ssh/config 必须写全关键字段,不能只靠 HostName
VSCode 默认读取 ~/.ssh/config,但不少人只写了 Host 和 HostName,把其他必要项漏了,结果连接卡死或者报 Permission denied (publickey):
User字段必须显式指定,特别是当远程用户默认 shell 是/bin/bash而家目录权限为700时,VSCode 可不会自己猜你是谁- 如果改过 SSH 端口(比如阿里云常用 2222),一定要加
Port 2222,否则默认走 22,肯定连不上 - 用密钥登录时,
IdentityFile要写绝对路径,而且私钥的权限必须是600:chmod 600 ~/.ssh/id_rsa_prod - 给一个最小可用的配置示例:
Host myprod HostName 192.168.10.5 User deploy Port 2222 IdentityFile ~/.ssh/id_rsa_prod StrictHostKeyChecking no
首次连接失败,大概率卡在 vscode-server 下载或解压
VSCode 第一次连接时,会在远程自动生成 ~/.vscode-server 并下载对应 commit 的 server 二进制。国内用户经常在这里卡住,因为默认下载地址是 https://update.code.visualstudio.com,这个域名不稳定、重定向多、校验还严:
- 现象:左下角一直显示“Installing VS Code Server…”,但远程执行
ls -la ~/.vscode-server/bin/发现要么是空的,要么只有不完整的哈希目录 - 别反复重试——每次失败都会残留损坏的目录,反而干扰下一次部署
- 手动补救流程:
① 从 VSCode 窗口左下角复制 commit ID(类似6c3e3dba23e8fadc360aed75ce363ba185c49794这样的)
② 浏览器打开https://update.code.visualstudio.com/commit:6c3e3dba23e8fadc360aed75ce363ba185c49794/server-linux-x64/stable,下载vscode-server-linux-x64.tar.gz
③ 用scp vscode-server-linux-x64.tar.gz user@host:~传到远程
④ 登录远程,解压到指定路径:mkdir -p ~/.vscode-server/bin/6c3e3dba23e8fadc360aed75ce363ba185c49794 && tar -xzf vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/6c3e3dba23e8fadc360aed75ce363ba185c49794 --strip-components 1 - 顺手检查远程是否有
curl:which curl,没有就装一下:sudo apt install curl(Ubuntu/Debian)
远程扩展要单独装,路径和终端都以远端为准
连接成功后,所有操作都是在远程发生的。本地装的 Python/Pylance/Docker 插件不会自动生效,必须在远程窗口里重新安装:
- 点击左侧扩展图标,顶部切换到“Remote: SSH”标签页,搜索并安装需要的扩展
- 终端(
Ctrl+`)启动的是远程 shell,python --version、git status都是远端环境的结果 - 调试时断点路径必须是远端绝对路径,比如
/home/user/project/main.py,不是你本地的/Users/me/project/main.py - 建议在项目根目录建一个
.vscode/settings.json,明确指定解释器路径:{ "python.defaultInterpreterPath": "/usr/bin/python3" } - 另外要特别注意:如果远程家目录挂载在 NFS 上,或者
/tmp被noexec挂载,~/.vscode-server就无法执行——这是最隐蔽的静默失败原因之一
真正麻烦的从来不是“怎么连”,而是连上之后发现 ~/.vscode-server 权限不对、磁盘满了、locale 缺失导致中文乱码、或者 shell 启动脚本里有个 echo 输出干扰了 VSCode 的协议握手——这些细节如果不手动去远端环境里查一遍,光盯着 VSCode 界面是找不到根因的。


































