Vscode如何连接远程服务器【教程】

13次阅读

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

Vscode如何连接远程服务器【教程】

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+Pwindows/Linux)或 Cmd+Shift+PmacOS),输入 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),它依赖远程机器有可用的 curlwgetunzip 和基础 shell 环境:

  • 如果卡在 “Installing VS Code Server” 卡住超过 2 分钟,大概率是网络问题(比如服务器无法访问 gitHub 或 vscode-update.azurewebsites.net)
  • 可手动下载:去 https://update.code.visualstudio.com 找对应 commit 的 tar 包,上传到服务器 ~/.vscode-server/bin/解压
  • 若远程是 Alpine Linux、容器等极简环境,可能缺 glibctar,此时 vscode-server 启动失败,日志在 ~/.vscode-server/.cli.log

免密登录失效、每次都要输密码?重点看 SSH Agent 和 config 权限

即使本地 ssh 命令免密了,VS Code 仍弹密码框,常见原因有两个:

  • ~/.ssh/config 文件权限太宽松(如 644),必须设为 600chmod 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_configPubkeyAuthentication 必须为 yes,且 AuthorizedKeysFile 路径正确(默认是 .ssh/authorized_keys

真正卡住的地方往往不在 VS Code 界面里,而在 SSH 层是否干净、config 是否生效、远程环境是否支持 server 自动部署。别一上来就调 VS Code 设置,先让 ssh 命令行稳了再说。

text=ZqhQzanResources