VS Code 通过 SSH 连接远程服务器完整教程

一、为什么要用 VS Code 连接 SSH?

在日常开发中,我们经常会遇到这种情况:

本地电脑只是写代码和查看文件,真正的代码运行环境在远程 Linux 服务器上,比如实验室服务器、云服务器或公司服务器。

如果每次都用终端 ssh 登录服务器,再用 vim 或 nano 改代码,效率会比较低。而 VS Code 的 Remote - SSH 插件可以让我们直接在本地 VS Code 中打开远程服务器目录,就像操作本地文件一样编辑、运行和调试代码。

简单来说:

  • 本地 VS Code 负责界面显示;
  • 远程服务器负责代码运行、文件存储和环境依赖;
  • 开发体验接近本地项目,但实际运行环境在服务器上。

二、准备条件

在开始之前,需要准备好以下内容:

  1. 本地电脑已经安装 VS Code。
  2. 本地电脑可以使用 ssh 命令。
  3. 远程服务器已经开启 SSH 服务。
  4. 你知道远程服务器的:
    • IP 地址或域名
    • SSH 端口
    • 用户名
    • 密码或私钥

例如:

ssh lbs@192.168.1.100

如果命令行可以正常登录,VS Code 通常也可以正常连接。


三、安装 VS Code Remote - SSH 插件

打开 VS Code,进入扩展商店,搜索:

Remote - SSH

安装 Microsoft 官方的 Remote - SSH 插件。

也可以安装 Remote Development 插件包,它包含 Remote - SSH、Dev Containers、WSL 等远程开发相关插件。

安装完成后,VS Code 左侧会出现远程资源管理器入口,左下角也会出现一个绿色的远程连接按钮。


四、配置 SSH Host

1. 打开 SSH 配置文件

在 VS Code 中按下:

Ctrl + Shift + P

输入:

Remote-SSH: Open SSH Configuration File

然后选择当前用户目录下的 SSH 配置文件。

常见路径如下。

Windows:

C:\Users\你的用户名\.ssh\config

Linux / macOS:

~/.ssh/config

如果没有这个文件,可以手动新建。


2. 编写 SSH Host 配置

假设远程服务器信息如下:

服务器 IP:192.168.1.100
SSH 端口:22
用户名:lbs

那么可以写成:

Host my-server
    HostName 192.168.1.100
    User lbs
    Port 22

参数说明:

Host      VS Code 中显示的连接名称,可以自定义
HostName  服务器 IP 或域名
User      登录服务器使用的用户名
Port      SSH 端口,默认一般是 22

保存之后,ssh就配置好了。


五、使用私钥免密登录(可以先跳过,等配置好了再看)

如果不想每次连接都输入密码,可以配置 SSH 私钥登录。

1. 本地生成 SSH 密钥

在本地终端执行:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可。

默认会生成:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

其中:

id_ed25519      私钥,不能泄露
id_ed25519.pub  公钥,可以放到服务器

注意:私钥文件一定不要发送给别人,也不要上传到 GitHub、网盘或公开仓库。


2. 把公钥复制到服务器

Linux / macOS 可以使用:

ssh-copy-id -p 22 lbs@192.168.1.100

如果是 Windows,也可以手动复制 id_ed25519.pub 的内容,然后追加到远程服务器的 authorized_keys 文件中:

mkdir -p ~/.ssh
vim ~/.ssh/authorized_keys

把公钥内容粘贴进去后,设置权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. 修改 SSH 配置文件

Linux / macOS 可以这样写:

Host my-server
    HostName 192.168.1.100
    User lbs
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Windows 下也可以写绝对路径:

Host my-server
    HostName 192.168.1.100
    User lbs
    Port 22
    IdentityFile C:\Users\你的用户名\.ssh\id_ed25519

配置完成后,再次连接时一般就不需要输入密码了。


六、在 VS Code 中连接远程服务器

在最左侧栏点击插件图标,会显示如下,也就是我们刚刚在配置文件写的内容:
在这里插入图片描述
鼠标悬浮在你想要连接的位置(首次只有你的服务名称,相同处理即可),右侧会出现箭头。点击,即可快速连接远程服务器:

在这里插入图片描述

七、打开远程项目目录

连接成功后,点击:

File -> Open Folder

选择远程服务器上的项目目录,例如:

/home/lbs/project

或者:

/mnt/16t/1/lbs/project

打开后,就可以像操作本地项目一样操作远程服务器上的代码:

  • 新建文件
  • 修改文件
  • 删除文件
  • 打开终端
  • 运行 Python、Java、C++ 等程序
  • 使用 Git
  • 安装项目依赖
  • 调试代码

八、常用 SSH Host 配置示例

1. 普通服务器连接

Host lab-server
    HostName 192.168.1.100
    User lbs
    Port 22

2. 使用私钥连接

Host lab-server
    HostName 192.168.1.100
    User lbs
    Port 22
    IdentityFile ~/.ssh/id_ed25519

3. 多台服务器配置

Host server-a
    HostName 192.168.1.100
    User lbs
    Port 22

Host server-b
    HostName 192.168.1.101
    User root
    Port 22

Host cloud-server
    HostName example.com
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_ed25519

这样在 VS Code 中就可以直接选择不同服务器连接。
也可以搭配内网穿透穿透使用,这里的地址和端口直接填公网相关的就行,可以参考我这篇文章

https://blog.csdn.net/weixin_47932662/article/details/162544638?spm=1001.2014.3001.5501


九、推荐 SSH 配置模板

日常使用可以直接参考下面这个模板:

Host my-server
    HostName 192.168.1.100
    User lbs
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60
    ServerAliveCountMax 3

参数说明:

Host                 VS Code 中显示的连接名称
HostName             服务器 IP 或域名
User                 登录用户名
Port                 SSH 端口
IdentityFile         私钥路径
ServerAliveInterval  每隔多少秒发送一次保活请求
ServerAliveCountMax  连续几次无响应后断开

其中:

ServerAliveInterval 60
ServerAliveCountMax 3

表示每隔 60 秒发送一次保活请求,连续 3 次无响应后断开连接。

这个配置可以减少长时间不操作导致的 SSH 断开问题。


十、完整连接流程总结

完整流程如下:

  1. 本地安装 VS Code。
  2. 安装 Remote - SSH 插件。
  3. 确认本地命令行可以 SSH 登录服务器。
  4. 编辑 ~/.ssh/config。
  5. 在 VS Code 中选择 Remote-SSH: Connect to Host...。
  6. 第一次连接时等待 VS Code Server 安装完成。
  7. 打开远程服务器上的项目目录。
  8. 根据项目需要,在远程端安装 Python、C/C++、Java 等插件。
  9. 如果连接异常,优先检查 SSH 命令行、端口、私钥、权限和 ~/.vscode-server。

十一、总结

VS Code Remote - SSH 的核心思想很简单:

本地 VS Code 负责界面显示,远程服务器负责代码文件、运行环境、终端和调试。

这样既可以保留 VS Code 的图形化编辑体验,又可以直接使用服务器上的 Linux 环境、项目依赖、大容量磁盘和计算资源。

对于深度学习、Java 后端、Linux 项目开发、服务器运维和远程实验环境来说,VS Code + SSH 是非常实用的一种开发方式。

只要命令行 SSH 能正常登录,再配置好 ~/.ssh/config,基本就可以稳定使用 VS Code 连接远程服务器进行开发。

更多推荐