VSCode 配置 Remote-SSH 远程开发

不久前的 PyCon 2019 大会上,微软发布了 一款名为 Remote Development 的 VSCode 插件。这个插件可以允许用户使用 VSCode 连接远程服务器、WSL(Windows Subsystem for Linux)甚至容器(Container)来进行开发,所有的编辑、调试、运行等操作均可在远端进行,本地的 VSCode 仅被用作显示功能。

最近有时间也研究了一下这个插件,确实是挺方便的,在这里简单介绍一下怎么使用这个插件的 Remote-SSH 功能来远程连接 Linux 服务器吧。

安装 VSCode

这个就不再详细讲了,直接去官网下载后和正常软件一样安装即可。

附上官网地址:https://code.visualstudio.com/

安装后默认是英文界面,要改成中文的话可以点击左侧的扩展按钮搜索 “Chinese”,安装搜索结果中的第一个(Chinese (Simplified) Language Pack for Visual Studio Code)后重启软件即可变为中文。

安装远程开发扩展

和上面一样,点击扩展栏,然后搜索“Remote Development”,第一个结果就是我们需要的插件,点击安装即可,下面是我在已经安装好了之后截的图。

VSCode Remote Development

这个插件会自动安装 Remote-SSH, Remote-Containers, Remote-WSL 等几个依赖插件。从上面的图也可以看到,除了 Remote Development 之外,下面的几个插件也都是已经安装好了的。

安装 SSH 工具

本文介绍的是使用 Remote-SSH 来连接远程服务器,所以很明显的,我们需要一个 SSH 客户端。Linux 系统一般自带 SSH 工具,可以直接跳过这一步,但是 Windows 下就需要自己去安装了。

由于我平时有用到 Git,所以这里我直接是用的 Windows 版本 Git 自带的 SSH ,你也可以选择其他的工具,只要将其加入到环境变量中即可。

先附上 Git 的下载链接:https://git-scm.com/download/

从上面的链接下载 Windows 版本的 Git 后直接安装即可。安装版本(Setup)会自动配置好环境变量,无需其他操作;绿色版本(Protable)则需要手动添加环境变量来保证在任何位置都可以直接调用,这里不再过多介绍。

安装好后可以打开命令提示符(cmd),输入 ssh 验证一下,出现如下命令回显即为正常。

配置 SSH 密钥登录

为了更方便的远程连接,我们需要配置一下 SSH 密钥登录。会使用 Linux 的应该都知道怎么操作,所以这里只做一下简单介绍,不再详细描述所有的步骤。

先在本地生成一对密钥:打开 cmd 或 git bash,输入 ssh-keygen 后一路回车即可。

这会在你用户目录下的 .ssh 文件夹内生成 id_rsa 和 id_rsa.pub 两个文件,分别对应为私钥和公钥。将 id_rsa.pub 文件中的内容复制到你远程主机用户目录下 .ssh 文件夹内名为 authorized_keys 的文件中即可。

之后在 cmd 内输入 ssh user@ip 进行测试(user 你的用户名,ip 为你远程主机的 ip),无需密码能正常登录上远程主机即配置成功。

注意:远程主机需要为 SSH 开启“允许使用密钥登录”的配置项。

配置 Remote-SSH

回到 VSCode。由于之前自动安装了 Remote-SSH,这时在左侧可以找到一个 Remote-SSH 的图标,点击打开它,然后再点击 Configure,在弹出的窗口中选择配置文件地址,一般选择第一个就够了。

SSH Config 文件地址

再编辑这个文件:

  • Host 后面填服务器名称(这个名称只是让你用来区分的,想填什么就填什么)
  • HostName 后面填你需要连接的远程服务器的 IP 地址或域名
  • User 后面填你用来登录远程服务器的用户的用户名
  • 最后再在下面加一行 IdentityFile ,后面接自己刚刚部署到远程服务器上的公钥对应私钥的路径

Remote-SSH Config

保存文件后右边的 Connections 栏中会出现一个以你设置的 Host 名命名的连接,鼠标右击它,然后选择 Connect to Host in Current Window 即可开始连接,如果你的配置没有任何问题的话,稍等一会儿左下角就会出现一个绿色的 SSH: <Host> 的标识,即表示已成功连接到了远程主机。

此时新建一个终端,会发现弹出的是远程主机的 shell;新建工作区,弹出的是远程主机的文件夹;也可以使用插件商店在远程主机上安装各种插件。所有的操作就和正常使用 VSCode 是一样的,稍微配置一下就可以愉快的开始远程开发啦。

写在最后

本文只是对 VSCode Remote Development 这个插件中 Remote-SSH 功能的配置方法做了一个简单的介绍,其他还有 Remote-WSL、Remote-Containers 等更多的功能,这里不再详述。

如果想深入了解的话可以去查看官方文档:https://code.visualstudio.com/docs/remote/remote-overview