本文主要讲述VSCode使用SSH进行远程开发。本地主机是Win10,远程主机是Debian10,安装在VMWare里,其它Linux系统也是类似。


一 准备工作

首先在Debian10里安装ssh server,

sudo apt install openssh-server

PS:远程主机是ssh server,VSCode是ssh client
还要安装curl或wget,这里安装curl,后面VSCode会用到,

sudo apt install curl

然后打开VSCode,在Extensions里输入remote,
在这里插入图片描述
可以看到有多个Extension可选,前面三个都是属于Remote Development的一部分,用于远程连接不同种类的host,如果直接安装Remote Development,就会把这三个都安装上。

由于本文主要是远程连接虚拟机,所以只安装Remote-SSH,安装成功后,在VSCode左下角出现一个绿色图标
在这里插入图片描述


二 远程连接

1. 测试SSH

首先要保证本机可以和远程机器进行SSH通信。

打开Win10的终端,然后使用ssh命令去连接远程主机,确保可以连通,

ssh wh@192.168.58.134

这里的用户名是虚拟机里已存在的用户名,连接过程如下,要输入用户密码
在这里插入图片描述
输入exit然后回车可以退出SSH连接。

如果修改了端口号,就需要加上-p选项来指定端口号,例如,

ssh -p 2233 wh@192.168.58.134

不指定就使用默认端口号22

2. 生成SSH Key并授权

在Win10终端下,使用下面命令生成SSH Key,

ssh-keygen -t rsa -b 4096 -f %USERPROFILE%/.ssh/debian_rsa

提示输入passphase,直接回车就行,最后会生成key文件,即debian_rsa.pub

生成OK后,使用scp命令把debian_rsa.pub传到虚拟机里,重新命名为key.pub

scp %USERPROFILE%/.ssh/debian_rsa wh@192.168.58.134:~/key.pub

然后使用ssh连接到虚拟机里,

ssh wh@192.168.58.134

接着执行下面命令把key.pub写入到授权文件里并修改权限,

cat ~/key.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/key.pub

然后我们在Win10终端下尝试使用这个key去连接虚拟机,

ssh -i %USERPROFILE%/.ssh/debian_rsa wh@192.168.58.134

连接成功,说明我们生成的key没有问题!

3. 配置VSCode并远程连接

点击VSCode左下角那个绿色图标,
在这里插入图片描述
在VSCode弹出的界面中,选择Open SSH Configuration File…
在这里插入图片描述
然后再选第一个,
在这里插入图片描述
接着就是填入对应的信息,读者需要根据自己的情况进行输入,例如HostName,User等,Host可以随意定义
在这里插入图片描述
输入完毕后保存,再次点击左下角绿色图标,弹出界面里选择Connect to Host…
在这里插入图片描述
接着选择刚才填的Host,即debian10_remote
在这里插入图片描述
然后会弹出一个新的VSCode窗口,第一次连接需要一点时间,会提示输入远程机器的操作系统类型,这里选择Linux。

连接成功后,左下角图表会变成如下这样,
在这里插入图片描述
剩下的操作就和正常使用VSCode一样了,由于是远程连接,所以插件什么的都需要重新弄下。


三 虚拟机重启问题

虚拟机重启后,使用远程重新连接时,有时会出现The VS Code Server failed to start的问题,
解决办法,

  1. Ctrl-Shift-p 选择Remote-SSH: kill VS Code Server on Host…
  2. 重新连接,选择主机
  3. 选择系统平台 — Linux

四 小结

本文主要讲述如何使用VSCode的远程扩展进行远程开发,主要原理是把本机上的SSH Key加入到SSH Server的授权文件里,这样就允许VSCode作为SSH Client和SSH Server进行连接通信,继而实现了远程开发。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐