Visual Studio Code 远程开发配置

FreeGuideOnline 最新 2026-07-09

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