局域网内VSCode远程连接核心是Remote-SSH插件通过SSH协议连接已启用SSH服务的目标机,在其上部署vscode-server接管文件系统与终端,不依赖目标机GUI。

局域网内远程启动 VSCode 的核心是 Remote-SSH 插件配合本地 SSH 服务,不是“启动 VSCode”,而是让本地 VSCode 连上局域网另一台已开启 SSH 的机器,在其上加载 vscode-server 并接管文件系统和终端——整个过程无需在目标机桌面运行 VSCode GUI。
确保目标机已启用 SSH 服务
这是所有连接的前提,VSCode 不会帮你装或启 SSH。
- Linux(如 Ubuntu):运行
sudo systemctl status ssh,若未运行则执行sudo systemctl enable --now ssh - macOS:系统设置 → 共享 → 勾选「远程登录」,注意查看下方提示的用户名和地址格式(例如
ssh user@192.168.x.x) - Windows(WSL 或 OpenSSH Server):推荐用 WSL2 + SSH;若用原生 OpenSSH,需通过「可选功能」启用,并确认
sshd服务正在运行 - 常见错误现象:
Connection refused或超时 —— 多半是 SSH 服务没开,或防火墙拦截(Ubuntu 默认 ufw 可能禁用,但建议检查:sudo ufw status)
客户端配置 SSH 主机并连接
VSCode 不读取系统全局 ~/.ssh/config 的所有字段,只认标准 Host/HostName/User/Port 结构,且大小写敏感。
- 快捷方式:按
Ctrl+Shift+P→ 输入Remote-SSH: Connect to Host...→ 选择+ Add New SSH Host... - 输入命令必须完整、无空格错误,例如:
ssh alice@192.168.1.50(默认端口 22),或带端口:ssh bob@192.168.1.50 -p 2222 - 配置文件保存路径建议选默认(
~/.ssh/config),避免权限问题;若改存其他位置,后续每次连接都得手动指定 - 容易踩的坑:
Bad owner or permissions on /home/user/.ssh/config—— 表示该文件权限太宽松,运行chmod 600 ~/.ssh/config即可修复
离线环境必须手动部署 vscode-server
目标机若无外网(如内网服务器、物理隔离开发机),VSCode 客户端无法自动下载 vscode-server,连接会卡在「Installing VS Code Server」并报错 Failed to fetch。
- 先在客户端 VSCode 中查看 commit ID:帮助 → 关于 → 复制「提交」后那一串 40 位哈希(如
6cba118ac49a1b88332f312a8f67186f7f3c1643) - 下载对应架构包:
– x64 机:https://update.code.visualstudio.com/commit:6cba118ac49a1b88332f312a8f67186f7f3c1643/server-linux-x64/stable
– ARM64(如树莓派、M1 Mac):https://update.code.visualstudio.com/commit:6cba118ac49a1b88332f312a8f67186f7f3c1643/server-linux-arm64/stable - 上传并解压到目标机:
mkdir -p ~/.vscode-server/bin/6cba118ac49a1b88332f312a8f67186f7f3c1643tar -zxvf vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/6cba118ac49a1b88332f312a8f67186f7f3c1643 --strip 1 - 关键遗漏点:很多人解压后忘了
chmod +x ~/.vscode-server/bin/6cba118ac49a1b88332f312a8f67186f7f3c1643/bin/code-server,导致权限拒绝(Permission denied错误)
连接后首次打开文件夹失败?检查路径和权限
连接成功但点击「打开文件夹」后报错「No such file or directory」或反复要输密码,往往不是网络问题,而是路径语义或用户权限不匹配。
- 输入路径必须是目标机上该用户有读写权限的目录,例如
/home/alice/project,不能填/root/xxx(除非你以 root 登录) - 若目标机是 CentOS/RHEL,SELinux 可能拦截
vscode-server访问文件,临时验证可运行sudo setenforce 0(仅测试,勿长期关闭) - Windows 目标机(如 WSL)要注意路径分隔符:VSCode 里填
/home/user/project,不是C:\Users\user\project - 连接后左下角显示
SSH: hostname是正常标识;若显示SSH: undefined,说明配置解析失败,回头检查~/.ssh/config中 Host 名是否含非法字符(如下划线、大写字母)
真正卡住的地方,往往不在「怎么连」,而在「连上之后 VSCode 想访问什么、有没有权限、路径对不对」。尤其是离线部署时,commit_id 必须一字不差,code-server 的可执行权限常被忽略,这两处修好,90% 的局域网连接问题就解决了。


















