VSCode远程开发需Remote-SSH插件、本地SSH配置和服务器sshd服务三者协同;常见问题包括sshd未启动、防火墙阻断、SSH配置错误、vscode-server依赖缺失或权限不足。

VSCode 远程开发不是靠插件“一键连上”,而是依赖 Remote - SSH 扩展 + 本地 SSH 配置 + 服务器端 sshd 正常运行;连不上基本是这三者中某一个没对齐。
确保服务器已启用 SSH 且端口可访问
很多新手卡在第一步:以为装了 OpenSSH 就自动能连,其实 sshd 可能根本没启动,或防火墙/云平台安全组拦住了端口。
- 登录服务器后执行
sudo systemctl status sshd,确认状态为active (running) - 检查监听端口:
sudo ss -tuln | grep ':22'(或你自定义的端口),确保有LISTEN - 云服务器(如阿里云、AWS)必须在安全组中放行对应端口(默认 22),仅开放本地网络或公司 IP 段更安全
- 若改过 SSH 端口(如
Port 2222),VSCode 连接时必须显式指定,不能只填 IP
VSCode 中正确配置 Remote-SSH 连接信息
Remote - SSH 插件本身不存密码,它读取的是本地 ~/.ssh/config 或用户手动输入的连接串;格式错一个字符(比如少个空格、多一个冒号)就会报 Failed to connect to the remote extension host。
- 推荐用
~/.ssh/config管理连接,例如:
Host myserver
HostName 192.168.1.100
User ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
- 在 VSCode 命令面板(
Ctrl+Shift+P)中运行Remote-SSH: Connect to Host...,选myserver即可 - 如果首次连接提示 “Are you sure you want to continue connecting?”,输
yes—— 这是正常 SSH 首次信任指纹流程,不是错误 - 避免直接在连接框里输
user@host:port,容易漏掉IdentityFile或权限问题,config文件方式更可控
远程 VSCode Server 启动失败的常见原因
连接 SSH 成功 ≠ 远程开发环境就绪。VSCode 会在服务器上自动部署一个轻量服务端(vscode-server),它依赖 curl、tar、unzip 和基础 libc,缺一不可。
本书全面介绍PHP脚本语言和MySOL数据库这两种目前最流行的开源软件,主要包括PHP和MySQL基本概念、PHP扩展与应用库、日期和时间功能、PHP数据对象扩展、PHP的mysqli扩展、MySQL 5的存储例程、解发器和视图等。本书帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何创建数据库驱动的动态Web应用程序。
- 报错
Command 'code' not found或Failed to fetch remote environment:检查服务器是否安装了curl(which curl)和tar(tar --version) - 使用 Alpine Linux 或最小化镜像(如
debian-slim)时,glibc缺失会导致vscode-server启动崩溃,需换用标准镜像或手动安装兼容库 - 磁盘空间不足(
/tmp或用户家目录满)也会让下载/解压失败,看日志里是否有No space left on device - 某些企业服务器禁用了
~/.vscode-server目录的执行权限,需联系管理员确认noexec是否挂载在 home 分区
连接后文件浏览慢、终端卡顿怎么办
这不是 VSCode 本身的问题,而是 SSH 通道带宽或远程文件系统响应拖慢了协议层;尤其打开大项目或 NFS 挂载目录时明显。
- 在
~/.ssh/config对应 Host 块中添加:TCPKeepAlive yes和ServerAliveInterval 60,防意外断连 - 关闭 VSCode 的文件监视器(
"files.watcherExclude")可大幅降低 CPU 和 IO 压力,例如排除node_modules和构建产物目录 - 不要在远程窗口里开本地路径(如
/mnt/share)下的超大仓库——VSCode 会尝试递归扫描,改成只打开实际需要的子目录 - 终端卡顿大概率是服务器
bash/zsh启动脚本太重(比如每次加载 SDK、conda 环境),建议精简~/.bashrc中非交互式场景不需要的部分
真正难调的往往不是“怎么连”,而是服务器环境是否干净、SSH 配置是否被其他工具(如 mosh、tmux)干扰、以及 VSCode 自动部署的 vscode-server 版本与远程系统 ABI 是否兼容——这些细节不报明确错误,但会让连接反复失败或功能异常。









