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
列表中就会看到刚添加的服务器(指定的服务器别称)
之后再连接服务器只需要在此页面免密连接服务器即可。