最近VScode发布了远程编程与调试的插件Remote Development,使用这个插件可以在很多情况下代替vim直接远程修改与调试服务器上的代码,就和在本地使用VScode一样。终于不用在服务器端翻来覆去的配置vim插件了,同时服务器端的比如tmux配置可以原封不动地在本地VScode使用。本文介绍配置的过程以及如何在本地通过ssh的方法连接到远程机器上。

配置过程

安装VScode

原本Remote-SSH这个插件仅支持VSCode的Insider版本(2019.5.8发布),所以你需要下载VSCode的Insider版本

安装过程很简单,直接下一步直到完成,然后在扩展搜索remote ssh点击安装。

avatar

安装完成后侧边栏会出现新的图标。

avatar

客户端服务器端SSH配置

在本地机器(我这里是自己的windows宿主机),后文称为客户端,安装的vmware虚拟机称为服务器端(Linux)。

1、首先在客户端安装ssh

打开计算机设置页面

avatar

选择应用-应用和功能-管理可选功能,安装OpenSSH客户端

avatar

在客户端左下角搜索输入cmd,命令行输入ssh-keygen -t rsa,输入你想要放置SSH密钥对的目录,这里一般不更改,一直enter直到结束即可,最后在`c:\user目录下生成密钥文件id-rsa和id-rsa.pub,第一个是私钥文件,第二个是公钥文件。

avatar

2、接下来将客户端的公钥内容添加到服务器端,步骤如下:

首先检测ssh服务是否启动 : netstat -ntlp | grep ssh

如果ssh服务没有启动 :/etc/init.d/ssh resart

方法一:

手动创建.ssh文件夹如下所示,我这里已经建好了,只是截图展示一下文件位置,并在.ssh文件夹下创建文件authorized_keys,将客户端公钥复制进去。这里注意文件权限可能需要修改。

1) .ssh目录的权限必须是700

2) .ssh/authorized_keys文件权限必须是600

下图第一列就是文件权限。

avatar

修改配置文件:vim /etc/ssh/sshd_config,把PubkeyAuthentication配置为 yes ,允许使用基于密钥认证的方式登录。

方法二:

也可以通过ssh-copy-id的方式,需要在客户端安装bash,cmd无法识别linux命令。可以将公钥复制到远程机器。

1
$ ssh-copy-id -i .ssh/id_rsa.pub 用户名@192.168.x.xxx

远程连接

如图选择文件目录,这是让你选择你的config文件放在哪里,必须放在客户端密钥文件夹下

avatar

配置文件内容很简单,就两行

1
2
3
$ Host alias
$ HostName 1.1.1.1 #服务器的ip,服务器终端输入ifconfig命令查看inet地址
$ User username #远程服务器的用户名,其实就是你的虚拟机终端前面显示的用户名

配置完成,选择在当前窗口开启连接

avatar


连接成功,左下角会如下图所示

avatar

接下来可以导入服务器端的项目,选择编辑栏File-Open Workspace,成功导入项目

avatar

VSCode更新

一个功能如果只能针对特定版本可用,那就谈不上任何方便了。因此不到一个月VSCode版本发布了更新,目前的VSCode 1.35支持Remote SSH配置,需要可官网下载下载链接,若已下载老版本,点击菜单栏Help-Check for Updates进行更新,重启即可生效,然后同样的安装Remote - SSH,密钥已经配置好了,只需再选择Config文件,就能够远程连接上服务器,配置完成之后,每次开启服务器之后,在客户端开启VSCode就会自动连接上服务器,很方便。