商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > VSCode如何配置Remote SSH_远程服务器开发完整教程

VSCode如何配置Remote SSH_远程服务器开发完整教程

  发布于2026-07-11 阅读(0)

扫一扫,手机访问

能连上、能编辑、能调试,才算是真正的远程开发。很多人以为装上 Remote-SSH 插件就万事大吉,其实它依赖的是本地 ssh 命令、远程 SSH 服务、网络通路,以及 vscode-server 在远端的正确部署——四个环节缺一不可。任意一环断掉,你就会卡在“Connecting…”或者“Installing VS Code Server…”那里干着急。

VSCode如何配置Remote SSH_远程服务器开发完整教程

确认本地 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,但不少人只写了 HostHostName,把其他必要项漏了,结果连接卡死或者报 Permission denied (publickey)

  • User 字段必须显式指定,特别是当远程用户默认 shell 是 /bin/bash 而家目录权限为 700 时,VSCode 可不会自己猜你是谁
  • 如果改过 SSH 端口(比如阿里云常用 2222),一定要加 Port 2222,否则默认走 22,肯定连不上
  • 用密钥登录时,IdentityFile 要写绝对路径,而且私钥的权限必须是 600chmod 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
  • 顺手检查远程是否有 curlwhich curl,没有就装一下:sudo apt install curl(Ubuntu/Debian)

远程扩展要单独装,路径和终端都以远端为准

连接成功后,所有操作都是在远程发生的。本地装的 Python/Pylance/Docker 插件不会自动生效,必须在远程窗口里重新安装:

  • 点击左侧扩展图标,顶部切换到“Remote: SSH”标签页,搜索并安装需要的扩展
  • 终端(Ctrl+`)启动的是远程 shell,python --versiongit status 都是远端环境的结果
  • 调试时断点路径必须是远端绝对路径,比如 /home/user/project/main.py,不是你本地的 /Users/me/project/main.py
  • 建议在项目根目录建一个 .vscode/settings.json,明确指定解释器路径:
    { "python.defaultInterpreterPath": "/usr/bin/python3" }
  • 另外要特别注意:如果远程家目录挂载在 NFS 上,或者 /tmpnoexec 挂载,~/.vscode-server 就无法执行——这是最隐蔽的静默失败原因之一

真正麻烦的从来不是“怎么连”,而是连上之后发现 ~/.vscode-server 权限不对、磁盘满了、locale 缺失导致中文乱码、或者 shell 启动脚本里有个 echo 输出干扰了 VSCode 的协议握手——这些细节如果不手动去远端环境里查一遍,光盯着 VSCode 界面是找不到根因的。

本文转载于:https://www.php.cn/faq/2382642.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注