VS Code 远程连接需 Remote-SSH 插件、正确 SSH 配置及本地命令行 ssh user@host 可通;若不通,先解决密钥、防火墙、sshd 服务、端口等问题,再配置 ~/.ssh/config 和 vscode-server 环境。

VS Code 连接远程服务器不是靠“插件安装完就自动连上”,关键在 Remote-SSH 扩展 + 正确的 SSH 配置 + 本地能通远程的 SSH 命令行。如果 ssh user@host 在终端都连不通,VS Code 一定连不上。
确认本地能用命令行 SSH 登录
这是最常被跳过的一步,但所有后续操作都依赖它:
- 打开终端(macOS/Linux 用 Terminal,Windows 用 PowerShell 或 WSL),执行
ssh user@your-server-ip - 首次连接会提示是否信任 host key,输入
yes继续 - 若提示
Permission denied (publickey),说明没配好密钥——别急着开 VS Code,先用ssh-copy-id user@your-server-ip推送公钥,或手动检查~/.ssh/id_rsa.pub是否已添加到服务器的~/.ssh/authorized_keys - 若卡在连接、超时,优先排查防火墙、服务器 SSH 服务是否运行(
systemctl status sshd)、端口是否非默认(如用了-p 2222)
安装 Remote-SSH 并配置 SSH Host
VS Code 不自带 SSH 功能,必须通过官方扩展启用:
- 在扩展市场搜索并安装
Remote - SSH(作者是 Microsoft) - 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Remote-SSH: Connect to Host... - 首次使用会提示选择
Configure SSH Hosts,选~/.ssh/config - 在打开的 config 文件里追加一段(注意缩进用空格,不能用 Tab):
Host myserver
HostName 192.168.1.100
User john
Port 22
IdentityFile ~/.ssh/myserver_key
之后再用 Remote-SSH: Connect to Host... 就能看到 myserver 可选了。
连接后看不到远程文件系统?检查 VS Code Server 是否启动成功
VS Code 连上后会在远程服务器自动部署一个轻量级服务端(vscode-server),它依赖远程机器有可用的 curl、wget、unzip 和基础 shell 环境:
- 如果卡在 “Installing VS Code Server” 卡住超过 2 分钟,大概率是网络问题(比如服务器无法访问 GitHub 或 vscode-update.azurewebsites.net)
- 可手动下载:去 https://update.code.visualstudio.com 找对应 commit 的 tar 包,上传到服务器
~/.vscode-server/bin/下解压 - 若远程是 Alpine Linux、容器等极简环境,可能缺
glibc或tar,此时vscode-server启动失败,日志在~/.vscode-server/.cli.log
免密登录失效、每次都要输密码?重点看 SSH Agent 和 config 权限
即使本地 ssh 命令免密了,VS Code 仍弹密码框,常见原因有两个:
-
~/.ssh/config文件权限太宽松(如 644),必须设为600:chmod 600 ~/.ssh/config - SSH Agent 没被 VS Code 继承(尤其 macOS 上 GUI 启动的 VS Code 不自动读取 shell 的 agent)——可在 VS Code 设置中开启
remote.ssh.enableAgentForwarding,或改用命令行启动:code --remote ssh-remote+myserver - 服务器端
/etc/ssh/sshd_config中PubkeyAuthentication必须为yes,且AuthorizedKeysFile路径正确(默认是.ssh/authorized_keys)
真正卡住的地方往往不在 VS Code 界面里,而在 SSH 层是否干净、config 是否生效、远程环境是否支持 server 自动部署。别一上来就调 VS Code 设置,先让 ssh 命令行稳了再说。










