vs code remote-ssh通过密钥认证实现免密连接,依赖系统ssh基础:先生成ed25519密钥对、用ssh-copy-id上传公钥、确保服务器sshd_config启用pubkeyauthentication并重启服务,再安装remote-ssh扩展、配置~/.ssh/config主机别名,最后在远程窗口中安装对应扩展及调试器。
直接用 vs code 的 remote-ssh 扩展就能连,不是远程桌面,而是把编辑、调试、终端全搬到远端执行,本地只渲染界面。关键不在 vs code 本身,而在 macos 和 linux 两端的 ssh 基础是否扎实。
先配好 SSH 免密登录
这是最常卡住的一步。VS Code 远程连接全程依赖系统 SSH,密码登录容易中断、超时,必须用密钥。
- 在 macOS 终端运行
ssh-keygen -t ed25519 -C "your@email.com",一路回车生成密钥对(私钥默认存~/.ssh/id_ed25519) - 执行
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip把公钥传到 Linux 服务器 - 手动检查服务器上
~/.ssh/authorized_keys权限是否为600,~/.ssh目录权限是否为700 - 确认服务器
/etc/ssh/sshd_config中有PubkeyAuthentication yes,改完重启服务:sudo systemctl restart sshd - 最后在 macOS 终端测试:
ssh user@server-ip—— 能直接登录,才算真正配好
装插件并配置主机别名
Remote-SSH 是微软官方扩展,不是第三方工具,装它就等于装了整套远程开发能力。
- 打开 VS Code → 左侧扩展图标 → 搜索 Remote-SSH → 点安装
- 按
Cmd+Shift+P打开命令面板 → 输入 Remote-SSH: Add New SSH Host - 输入
ssh user@server-ip(如ssh ubuntu@192.168.1.200),选默认~/.ssh/config - VS Code 会自动在该文件里写入一段 Host 配置,你也可以手动编辑它,加个易记别名:
Host mylinux<br> HostName 192.168.1.200<br> User ubuntu<br> IdentityFile ~/.ssh/id_ed25519
这样后续连接只需选 mylinux,不用输 IP 和用户名。
连上去后要手动装远端扩展和调设置
连接成功只是开始。VS Code 会在 Linux 上自动部署 vscode-server,但很多功能仍需你干预。
- 首次连接会卡在 “Installing VS Code Server”,如果超时或报错,大概率是服务器无法访问 GitHub 或 Azure CDN(国内常见)。可手动下载对应 commit 的
vscode-server-linux-x64.tar.gz,上传解压到~/.vscode-server/bin/[commit-id]/ - 打开远程文件夹后,Python、Go 等语言支持不会自动生效——点击左下角绿色远程状态栏 → Install Extension on SSH: mylinux,重新装一遍
- 本地的
settings.json不影响远端行为。需要远端特有配置(比如 Python 解释器路径、clangd 参数),必须在远程窗口中按Cmd+Shift+P→ Preferences: Open Remote Settings (SSH)
终端打不开或调试失败?查基础环境
VS Code 终端和调试器都依赖 Linux 服务器的真实 shell 环境,不是所有最小化系统都开箱即用。
- 手动 SSH 登录服务器,运行
which bash和echo $PATH,确保返回正常;检查/etc/passwd里该用户的 shell 是否真实存在(比如写的是/bin/bash,但系统实际只有/usr/bin/bash) - 某些 Alpine 或容器环境默认没
bash,需运行apk add bash或apt install bash - 调试前确认远端已装好对应调试器:Python 要
pip install debugpy,C/C++ 要gdb,Node.js 要node可执行 - 如果远端
glibc版本太低(低于 2.17),vscode-server启动会失败,CentOS 6、老旧嵌入式系统基本不支持











