Visual Studio Code 远程开发配置
bash ssh-keygen -t ed25519 -C "your_email@example.com"
按提示操作,将公钥复制到远程服务器的 `~/.ssh/authorized_keys` 文件末尾。可使用:
```bash
ssh-copy-id user@your-server-address
若服务器仅支持密码登录,可暂时跳过,VS Code 支持密码交互。
2. 配置 SSH 连接
打开 VS Code,按下 F1 调出命令面板,输入 “Remote-SSH: Open SSH Configuration File...”,选择一个配置文件(通常为 ~/.ssh/config)。添加主机条目:
Host my-server
HostName 192.168.1.100 # 替换为实际 IP 或域名
User your-username
Port 22
IdentityFile ~/.ssh/id_ed25519
保存文件。
3. 连接到远程主机
再次按 F1,选择 “Remote-SSH: Connect to Host...”,选择刚刚配置的 my-server。首次连接会提示验证主机指纹,接受即可。之后 VS Code 会在远程安装一个轻量级服务端,连接成功后左下角会显示 SSH: my-server。
4. 打开远程文件夹
点击 “打开文件夹”,选择远程服务器上的项目路径。现在你可以像操作本地文件一样编辑、调试代码,终端也会自动切换到远程环境。
常见问题:
- 连接超时:检查防火墙是否放行 SSH 端口。
- 插件在远程失效:某些 UI 插件需要安装到远程,VS Code 左侧扩展面板会提示 “Install in SSH: my-server”。
Remote - Containers:在 Docker 容器中开发
适用于一致性环境、避免污染本机。
1. 安装 Docker
确保本地安装了 Docker Desktop 并正在运行。Windows / macOS 可直接下载安装包,Linux 请参考官方文档。
2. 创建开发容器配置
在项目根目录新建文件夹 .devcontainer,并在其中创建 devcontainer.json 文件,例如使用 Node.js 18 容器:
{
"name": "Node.js Dev",
"image": "mcr.microsoft.com/devcontainers/javascript-node:0-18",
"forwardPorts": [3000],
"extensions": [
"dbaeumer.vscode-eslint"
],
"postCreateCommand": "npm install"
}
更多预定义容器镜像见 devcontainers 镜像库。
3. 在容器中重新打开项目
点击左下角的绿色远程连接按钮,选择 “Reopen in Container”(或在命令面板运行 “Dev Containers: Reopen in Container”)。VS Code 将构建镜像、启动容器,并挂载工作区。结束后终端即处于容器内部,所有操作完全隔离。
4. 自定义配置
- 挂载额外卷:在
devcontainer.json中增加"mounts"字段。 - 使用 Dockerfile:将其指向自己的
Dockerfile:"build": { "dockerfile": "Dockerfile" } - 多容器环境:通过 Docker Compose 编排,配置
"dockerComposeFile"。
Remote - WSL:在 Windows 中享用 Linux 子系统
适合 Windows 用户需要 Linux 工具链,但不想离开 Windows 桌面环境。
1. 启用 WSL
在 PowerShell 管理员模式下运行:
wsl --install
默认安装 Ubuntu。重启计算机后,设置 Linux 用户名和密码。更多发行版可从 Microsoft Store 获取。
2. 在 VS Code 中连接 WSL
打开 VS Code,按 F1 选择 “Remote-WSL: New Window”。新窗口将打开一个连接到默认 WSL 发行版的远程实例,左下角显示 WSL: Ubuntu。或者使用命令 “Remote-WSL: Open Folder in WSL” 直接打开某个目录。
3. 跨系统文件操作
- WSL 中的文件系统位于
\\wsl$\<distro>\home\<user>\,可从 Windows 资源管理器访问。 - 建议项目放在 Linux 文件系统内(如
/home/user/projects),以获得最佳 I/O 性能。
高级技巧
端口转发与本地服务访问
- 自动转发:在
devcontainer.json或 SSH 配置中添加forwardPorts,VS Code 会自动映射端口,并弹出提示在本地浏览器打开。 - 手动转发:在 “PORTS” 面板(
Ctrl+Shift+P→ “View: Toggle Ports”)中添加要转发的端口。
远程扩展管理
- 远程安装的扩展与本地隔离。左侧扩展栏会区分显示本地 - 已安装(Local - Installed)和远程 - 已安装(Remote - Installed)。
- 想要在所有远程环境预装某些扩展?在
settings.json中配置remote.extensionKind。
使用代理连接
若通过跳板机或需代理,编辑 SSH 配置文件:
Host target-server
HostName 10.0.0.5
User dev
ProxyCommand ssh -W %h:%p proxy-user@jump-host