VScode远程开发

2,777 阅读5分钟

在进入公司担任开发人员时,往往会获得一台新的电脑。此时就需要远程开发并调试代码,同时为了不需要每次刷新VScode时都需要重新输入密码,此时就可以使用VScode的Remote-SSH插件来打开远程文件夹。

安装Remote-SSH插件

从扩展中搜索Remote-SSH,下载下图中的插件即可。这个插件能让你直接在本地VSCode编辑器中远程连接服务器(如云服务器、开发机),在远程服务器上打开、编辑、运行和调试代码,你的所有操作都会在远程服务器上完成,VSCode本地只做界面和操作。远程服务器上会跑一个小型VSCode Server,来配合本地VSCode界面。

image.png

首次远程连接

从左侧边栏的远程资源管理器中,可以点击下图中的齿轮图标——“打开SSH配置文件”,然后选择要更新的SSH配置文件,选择第一个即可。

image.png

此时可以在打开的配置文件config中,输入如下内容。其中Host随意一个名字即可,HostName为ip地址,User为root用户。

Host name
  HostName 191.181.x.x
  User root

image.png

完成上面步骤后,记得保存。然后在左边就可以看见name的远程连接。选择“在当前窗口中连接”,此时会让你输入密码登录,登录完成就代表连接了。如果要验证,可以新建一个终端,查看是否已知出现如下图内容。

image.png

SSH免密登录

在完成连接后,如果不进行SSH免密登录配置,下次再打开远程连接时,还是需要输入密码,并且在Ctrl+Shift+P选择reload window时,也会提示你再次输入密码。这是很麻烦的。

image.png

SSH(Secure Shell)即前面通过用户名和密码验证身份的过程,但是也可以通过 密钥对 (公钥和私钥)来实现“免密码”登录。其内部实现原理是用 非对称加密 的方式代替了密码输入。

配置步骤

下面来配置SSH免密登录。假设在本地机器Client下(打开VScode的主机)想要免密登录远程服务器Server,win+R输入cmd打开命令行窗口(Linux直接在终端命令即可),输入命令:

ssh-keygen -t rsa -C "xxx@gmail.com"

其中-t rsa表示指定密钥类型为RSA,-C为注释,后面的字符串会写入到公钥文件的末尾,只起到标识作用,方便管理。此时,连续按三次Enter键即可。上面命令会在本地 C:\Users\XXX.ssh\id_rsa.pub 文件中生成公钥,而同目录下的id_rsa为私钥。id_rsa.pub内容如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ...(很长很长)... xxx@gmail.com

接下来,可以通过记事本或notepad++来打开生成的公钥文件id_rsa.pub,将其复制到远程服务器Server的~/.ssh/authorized_keys文件中,表示允许使用私钥登录远程服务器Server。确保文件目录.ssh提前创建好,vi ~/.ssh/authorized_keys来打开,按i插入内容,写入完成后按Esc,输入:wq保存并退出。注意,这儿需要把前面的ssh-rsa也要复制过去,是整个文件内容都需要复制。此时,刷新VScode或者下次连接时,就不需要再次输入密码了。

测试登录

在本地机器Client下的终端中执行,root是远程服务器Server的用户名,191.181.x.x为ip地址:

ssh root@191.181.x.x

测试Server能否在不输入密码情况下连接成功,如果成功进入root用户,则代表上面配置成功。

为什么能免密?

非对称加密过程,即本地私钥 私密保存 ,公钥放到远程服务器的~/.ssh/authorized_keys文件里。在登录时,本地Client向远程Server发起连接,Server生成一个随机数,用Client提供的公钥加密后发回Client,本地Client用私钥解密,得到这个随机数,并发送回Server,Server确认解密结果正确,就知道Client持有私钥,允许Client进行登录。

image.png

登陆时,服务器只是确认你有没有私钥,而不是直接看密码。

GitHub的SSH免密拉取代码

在开发时,难免要在本地Client或远程Server端去克隆clone拉取代码,此时需要输入用户名、密码才能拉取,操作繁琐。接下来,也可以和上面步骤类似的去配置SSH免密拉取代码。下面为了演示,使用Github来操作,其他代码管理网站类似的。放公钥的位置有所不同,需要放置在Github网站管理公钥。

配置步骤

本地或远程生成SSH密钥对:ssh-keygen -t rsa -C "xxx@gmail.com",将生成的id_rsa.pub公钥复制到个人Github上。 登录Github --> 点击右上角头像 --> Settings --> 左侧栏点击SSH and GPG keys --> 点击New SSH key,见到如下界面。输入标题,方便自己管理,如My Laptop key。将公钥文件的全部内容粘贴到key中。

image.png

测试连接

在本地或远程的终端命令行中,输入ssh -T git@github.com,第一次可能会提示输入yes/no/[fingerprint],输入yes回车即可,如果出现如下内容,说明配置成功。

image.png

接下来就可以去本地或远程的终端命令行中拉取代码了,注意是使用ssh链接,而不是https链接。