VS Code Remote Development 保留本地窗口和界面,但把文件访问、terminal、语言服务与调试器放到 SSH host、WSL distribution 或 container 中运行。真正需要区分的是“代码在哪里运行”,不是为每个远端名称复制一份完整主题和编辑器设置。
按使用方式安装扩展
# SSH server
code --install-extension ms-vscode-remote.remote-ssh
# Windows Subsystem for Linux
code --install-extension ms-vscode-remote.remote-wsl
# Development container
code --install-extension ms-vscode-remote.remote-containers
需要浏览和管理本地 container/image 时,可以另外安装 Container Tools:
code --install-extension ms-azuretools.vscode-containers
这些扩展解决不同入口,不必因为使用 SSH 就同时安装 WSL 和 Dev Containers。确实需要“先 SSH 到 Linux,再进入远端 container”时,可以组合 Remote SSH 与 Dev Containers。Remote Development using SSH
SSH host 放在 SSH config
先在普通 PowerShell 中确认 SSH 可以连接:
ssh research-server
host、用户与 key path 应写在用户 SSH config,而不是公开的 VS Code settings:
Host research-server
HostName server.example.invalid
User analyst
IdentityFile ~/.ssh/id_ed25519
随后运行 Remote-SSH: Connect to Host。首次连接时 VS Code 会识别远端平台;无法识别时选择 Linux、Windows 或 macOS,并在本机设置中生成类似内容:
{
"remote.SSH.remotePlatform": {
"research-server": "linux"
}
}
这段映射包含个人 host alias,不应出现在公开参考配置中。认证使用 SSH key 或系统 agent,不要把 private key、密码或 token 写进 VS Code。
WSL 使用 Linux 环境
安装 WSL extension 后,在 WSL terminal 中进入项目并运行:
code .
窗口左下角应显示 WSL distribution。此时 integrated terminal 在 Linux 中运行,应该使用 Linux terminal profile,而不是试图通过下面的 Windows 设置选择 WSL shell:
{
"terminal.integrated.defaultProfile.windows": "Command Prompt"
}
需要指定 WSL 远程窗口的 shell 时,在该远程设置中使用 terminal.integrated.defaultProfile.linux。R、Python、Git 和 package 必须安装在 WSL 内;Windows 上同名程序不会自动成为 Linux 环境的一部分。Remote development in WSL
Dev Container 配置跟随项目
Dev Container 的核心不是个人 Profile,而是仓库中的 .devcontainer/devcontainer.json:
{
"name": "Analysis",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"customizations": {
"vscode": {
"extensions": [
"reditorsupport.r",
"quarto.quarto"
],
"settings": {
"files.eol": "\n"
}
}
}
}
项目打开后运行 Dev Containers: Reopen in Container。运行环境和项目所需扩展因此与仓库一起版本管理,不必要求每个人建立一个同名个人 Profile。Create a Dev Container
示例 image 只提供基础系统;实际项目应选择明确版本、安装运行依赖,并审查构建脚本后再启动。
扩展有本地端和远端端
主题、图标和大部分界面扩展运行在本地;需要读取源码、调用 interpreter 或连接 debugger 的扩展通常安装在远端。连接后,Extensions view 会分别显示 Local 与 SSH/WSL/Container。
Settings Sync 不负责把扩展同步到远程窗口。R extension、Python extension 等语言工具需要在实际运行代码的远端安装;对应的 R package、Python environment 和编译器也必须存在于远端。VS Code Profiles
一套精简的 Remote Profile
个人 Remote Development Profile 只需要远端入口扩展:
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-wsl
ms-vscode-remote.remote-containers
只用其中一种入口时只安装对应一项。语言扩展在连接具体环境后按项目需要安装,主题和字体继续使用所有 Profile 共用的基础配置。
排错顺序
- 在 VS Code 外用
ssh、wsl或 container CLI 验证环境本身可用; - 检查窗口左下角当前连接目标;
- 在远端 terminal 中确认
R、python、git等命令来自远端; - 在 Extensions view 确认语言扩展安装在正确一侧;
- 查看 Remote SSH、WSL 或 Dev Containers 对应的 Output channel;
- 不要通过复制另一台电脑的 host alias、绝对路径和缓存目录解决连接问题。
把连接、远端运行时和编辑器界面分开检查,比维护 Server、WSL、Docker 三份几乎相同的 Profile 更可靠。