Skip to content

VSCode Remote-SSH 配置文件详细指南

在使用 VSCode 的 Remote-SSH 插件连接远程服务器时,最核心的配置依赖于本机的 SSH 配置文件(通常位于 ~/.ssh/configC:\Users\你的用户名\.ssh\config)。

编写良好的 SSH 配置文件不仅能让你在 VSCode 中实现一键连接,还能避免每次繁琐地输入 IP、用户名和密码。


1. 配置文件基础位置与编辑方式

在 VSCode 中,你可以直接通过快捷键打开并编辑该配置:

  1. 按下 F1Ctrl+Shift+P (Mac 上为 Cmd+Shift+P) 打开命令面板。
  2. 输入并选择 Remote-SSH: Open SSH Configuration File (打开 SSH 配置文件)。
  3. 选择带有你当前用户路径的 config 文件(例如 ~/.ssh/config)。

2. 基础配置示例

最基础的配置只需要知道服务器的 别名IP 地址登录用户名

ssh-config
# 我的开发服务器
Host dev-server
    HostName 192.168.1.100
    User root

配置后,VSCode 的 Remote 资源管理器面板就会出现一个名为 dev-server 的目标,点击即可连接。


3. 核心参数详解

以下是 SSH Config 文件中常用的关键参数:

参数名描述示例
Host服务器的显示别名,可以随便起,支持通配符 *Host myserver
HostName真实的服务器 IP 或域名HostName 10.0.0.5
User登录该服务器的用户名User ubuntu
PortSSH 端口,如果不是默认的 22 必须指定Port 2222
IdentityFile指定登录该服务器所使用的私钥文件路径IdentityFile ~/.ssh/id_rsa_aws
ForwardAgent是否开启 SSH 代理转发 (在远端能使用本地的 Git 密钥)ForwardAgent yes

4. 完整进阶配置示例

示例 A:使用密钥免密登录 + 自定义端口

这是最推荐的连接方式。首先你需要使用 ssh-keygen 生成密钥对,并将公钥(.pub)放到服务器的 ~/.ssh/authorized_keys 中。

ssh-config
Host production-web
    HostName web.example.com
    User admin
    Port 50022
    IdentityFile ~/.ssh/id_rsa_prod
    # 禁用密码登录,仅使用密钥
    IdentitiesOnly yes

示例 B:使用跳板机(代理)连接内网服务器

如果目标服务器在公司/学校内网,你需要先登录一台有外网 IP 的“跳板机”(Bastion Host),然后再连接内网机器,可以使用 ProxyJump

ssh-config
# 先配置跳板机
Host bastion
    HostName 8.8.8.8
    User jump_user
    IdentityFile ~/.ssh/id_rsa

# 配置内网目标机器
Host inner-database
    HostName 10.10.1.50
    User db_admin
    # 告诉 SSH 先连接 bastion,再跳转到当前机器
    ProxyJump bastion

示例 C:保持长时间连接(防断开)

如果你发现 VSCode 的 SSH 连接闲置一段时间后总是自动断开报错,可以增加全局心跳包设置。

ssh-config
# 匹配所有 Host
Host *
    # 每隔 60 秒向服务器发送一次保活请求
    ServerAliveInterval 60
    # 如果连续 3 次没收到服务器响应才判定为断开
    ServerAliveCountMax 3
    # 开启 TCP 层的保活
    TCPKeepAlive yes
    # 开启 TCP 层的保活
    TCPKeepAlive yes