VSCode远程开发
VSCode远程开发
一、配置免密远程登录服务器
ssh 公钥认证是一种方便、高安全性的身份验证方法,它将本地“私有”密钥与远程主机上与用户关联的“公共”密钥进行匹配,从而实现免密登录。
密钥对:在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。
公钥:公钥用来给数据加密,用公钥加密的数据只能使用私钥解密
私钥:用来解密公钥加密的数据
简而言之,就是ssh远程连接的时候无需输入密码。
第一步,需要创建密钥对
1、生成密钥对
Win下可以安装git,或者OpenSSH,会带有ssh-keygen.exe,用于生成密钥对
Linux下应该环境自带
在已有生成密钥程序ssh-keygen.exe后
首先,运行下述命令生成密钥对,将会以你的邮箱作为标签创建一个新的SSH密钥
1 | ssh-keygen -t rsa -C "example@qq.com" |
之后便会提示正在生成,并询问存储位置,直接回车选择保存到默认位置
1 | Generating public/private rsa key pair. |
在提示符下,输入安全密码,即可生成一个新的ssh密钥。这里的安全密码用于使用此密钥时需要输入此时的密码来解锁。(这里不解释为什么还需要设置一重密码)
直接回车为空
1 | > Enter passphrase (empty for no passphrase): [Type a passphrase] |
到这里就生成好了,会提示你生成的密钥对的位置,通常位于:
Win:C\Users\Name\.ssh
Linux:~/.ssh/
这里面有几个文件比较重要:
id_rsa:私钥【这个千万不能泄露】
id_rsa.pub:公钥
known_hosts:一些服务器的记录【
authorized_keys:通常是服务器上的文件,记录客户端的公钥】【
config:VSCode生成的配置文件(之后才有的)】
2、使用密钥对
注意,这里说的都是使用公钥
拷贝公钥到服务器实现免密登录
1 | ssh-copy-id -i /mnt/c/Users/name/.ssh/id_rsa.pub -p 22 root@122.112.xxx.xxx |
之后再尝试远程连接便会发现无需输入密码了。
当然,这里还有其他的用处,比如用到github上
二、VSCode远程开发
VScode发布了远程编程与调试的插件Remote Development,使用这个插件可以在很多情况下代替vim直接远程修改与调试服务器上的代码,同时具备代码高亮与补全功能,就和在本地使用VScode一样。终于不用在服务器端翻来覆去的配置vim插件了。其中的
Remote Containers,Remote SSH都是非常Nice的。
1、下载插件

下载安装即可,之后便会多出一个标签页

2、配置插件
打开标签页,如下所示

先点击 +号,新建一个连接,按照提示输入远程连接命令:ssh name@ip
之后会提示输入密码,登录。这样我们便连接上了服务器,可以看到用户目录了,与本地使用VScode一致。
那么怎么用上我们之前配置的公钥呢?

点开加号旁边的设置按钮,会弹出config文件的列表,比如我们打开C盘底下的config文件
1 | Host ServerName |
说明:
Host:服务器的一个别称
HostName:服务器ip
User:用户名
Port:服务器端口,默认22
IdentityFile:本机私钥位置
保存文件后,左边的SSH TARGETS列表中就会看到刚添加的服务器(指定的服务器别称)

之后再连接服务器只需要在此页面免密连接服务器即可。
