前言
Remote - SSH 是由 Microsoft 为 Visual Studio Code(VS Code)开发的一款官方扩展,允许开发者通过 SSH(Secure Shell)协议直接在远程服务器上进行开发工作,就像在本地一样流畅和高效。
核心功能
- 远程开发环境无缝接入
安装 Remote - SSH 后,你可以在 VS Code 中直接连接到远程 Linux、macOS 或 Windows(需支持 SSH 服务)机器,并在该机器上打开文件夹、运行终端、调试代码等。 - 本地体验,远程执行
所有编辑、IntelliSense(智能提示)、代码补全、调试、Git 操作等都在远程服务器上执行,但界面完全集成在本地的 VS Code 中,用户几乎感觉不到差异。 - 无需在远程安装完整 IDE
只需在远程机器上安装一个轻量级的“VS Code Server”(由扩展自动部署),无需手动配置复杂的开发环境。 - 支持多跳(Jump Host)和代理
可通过配置~/.ssh/config文件支持复杂的网络拓扑,例如通过跳板机(bastion host)连接内网服务器。 - 与本地扩展生态兼容
大多数 VS Code 扩展会自动安装在远程端运行(如 Python、Go、Docker 等语言支持),确保功能完整。
Remote - SSH
使用前提
- 本地机器已安装 VS Code。
- 本地和远程机器均支持 SSH(通常 Linux/macOS 自带;Windows 可启用 OpenSSH 客户端/服务端)。
- 你拥有远程服务器的 SSH 访问权限(用户名、IP、密钥或密码)。
基本使用步骤
- 在 VS Code 中安装 Remote - SSH 扩展(由 Microsoft 发布)。
- 按
Ctrl+Shift+P,输入 “Remote-SSH: Connect to Host…”。 - 首次使用可选择 “Add New SSH Host…”,输入类似
user@hostname的地址。 - 选择 SSH 配置文件(通常是
~/.ssh/config),扩展会自动更新配置。 - 连接后,VS Code 会在远程服务器上安装所需组件,并打开远程文件系统。
- 此后可像本地一样打开文件夹、编辑代码、运行终端等。
切换文件夹
VSCode切换文件夹也获取的是服务器上的文件夹,非常方便。
快捷键 Ctrl+K Ctrl+O
典型应用场景
- 在云服务器(如 AWS EC2、阿里云 ECS)上开发和调试。
- 访问公司内网开发机或高性能计算集群。
- 统一团队开发环境(所有人在相同远程环境中编码)。
- 避免在本地安装复杂依赖(如 CUDA、特定版本的编译器等)。
注意事项
- 首次连接时需要网络通畅,VS Code 会自动下载并安装远程服务器组件。
- 若使用 SSH 密钥认证,建议配置
~/.ssh/config并设置好IdentityFile。 - 某些图形化调试工具(如 GUI 调试器)可能受限,但命令行调试完全支持。
- 网络延迟较高时,编辑体验可能略有影响(但远优于传统 SFTP + 本地编辑方式)。
Docker
VScode安装Docker扩展后,也能方便管理连接的SSH对应服务器中的Docker了。
免密登录服务器
在 Windows 本地 实现 SSH 免密登录远程 Linux(或支持 SSH 的服务器),以便 VS Code 的 Remote - SSH 扩展能自动连接、无需每次输入密码,可以按以下步骤操作。
前提条件
- 你的 Windows 版本 ≥ Windows 10(推荐 1809 以上)或 Windows 11
(自带 OpenSSH 客户端) - 远程服务器已开启 SSH 服务(如 Linux 的
sshd) - 你有远程服务器的用户名和 IP 地址
生成 SSH 密钥对(Win)
打开 PowerShell(普通用户即可)
执行以下命令生成密钥(推荐 Ed25519 算法):
1 | ssh-keygen -t ed25519 -C "183518918@qq.com" |
按三次回车:
- 保存路径:默认
C:\Users\<你的用户名>\.ssh\id_ed25519 - Passphrase:留空(直接回车) ← 这是免密的关键!
生成的文件:
- 私钥:
C:\Users\<用户名>\.ssh\id_ed25519- 公钥:
C:\Users\<用户名>\.ssh\id_ed25519.pub
公钥上传到远程服务器
方法一
使用 scp(推荐)
1 | scp $env:USERPROFILE\.ssh\id_ed25519.pub root@172.29.195.19:/tmp/id_ed25519.pub |
然后登录服务器,追加到 authorized_keys:
1 | ssh root@172.29.195.19 |
方法二
手动复制(更通用)
在 PowerShell 查看公钥内容:
1 | type $env:USERPROFILE\.ssh\id_ed25519.pub |
复制输出的整行(以 ssh-ed25519 AAAA... 开头)
用密码登录远程服务器:
1 | ssh root@172.29.195.19 |
在远程服务器上执行:
1 | mkdir -p ~/.ssh |
测试免密登录
在 PowerShell
1 | ssh root@172.29.195.19 |
配置 VS Code Remote - SSH 使用该密钥
VS Code 默认会使用 Windows 的 OpenSSH 客户端和 ~/.ssh 目录,但为确保万无一失,建议配置 SSH config 文件。
在 Windows 上创建或编辑 SSH 配置文件:
1 | explorer $env:USERPROFILE\.ssh\config |
添加如下内容(替换为你的信息):
1 | Host 172.29.195.19 |
保存文件。
在 VS Code 中连接
- 打开 VS Code
- 按
Ctrl+Shift+P→ 输入 Remote-SSH: Connect to Host… - 应该直接连接成功,不再弹出密码输入框