vscode远程开发,含ssh密钥配置(免密登录)、客户端多私钥配置。
经过实践,对原文略作精简和批注,版权归原作者所有。
原文地址:https://blog.csdn.net/u010417914/article/details/96918562
-------------------------------------------------------------------------- 正文分割线 ---------------------------------------------------------------------------------------
插件安装
Windows 10下面的Vscode,打开插件标签栏输入插件名称
Remote Development
注意找到红框中显示插件进行安装,安装完后需要重新加载窗口才生效
配置服务器
找到配置文件
进入远程调试栏-》点击配置图标-》进入配置文件夹进行配置
修改配置文件
根据自己对应信息进行填写即可
连接服务器
选中对应服务器-》右击-》连接服务器
由于没有对公钥进行配置,这种登录方式需要密码进行登录
配置密钥
简介
通过SSH简介知道协议的加密是通过RSA非对称加密,因此会有公钥与私钥。密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。按照当前实际搭建情况如下图所示:
密钥生成
密钥的生成可以通过Windows 10生成,也可以通过Ubuntu服务器生成,只要遵循简介中的架构模式即可,这里介绍通过Ubuntu生成方式。
- 通过MobaXterm等工具连接到Ubuntu服务器中
- 终端上输入以下指令建立密钥对
ssh-keygen
- 确定保存路径按Enter
Enter file in which to save the key (/home/andron/.ssh/id_rsa):
- 输入密码,按Enter留空
Enter passphrase (empty for no passphrase):
- 再次输入密码,按Enter留空
Enter same passphrase again:
- 生成公钥与私钥
Your identification has been saved in /home/andron/.ssh/id_rsa. =>私钥
Your public key has been saved in /home/andron/.ssh/id_rsa.pub. =>公钥
服务器上安装公钥
- 进入生成的两个密钥路径
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
ls =>查看确保生成功authorized_keys
转载者注:若当前服务器已经配置过一对公钥与私钥,且现需实现额外的主机与当前服务器的免密登录(即同一服务器对应多台主机的远程免密登录),则推荐在新主机上生成新的公钥与私钥,并将新主机上的公钥复制并添加到authorized_keys文件中(另起一行即可)。
- 为了确保连接成功,请保证以下文件权限正确:
sudo chmod 600 authorized_keys
sudo chmod 700 ~/.ssh
查看或配置打开密钥登录功能
- 打开SSH配置文件
sudo vim /etc/ssh/sshd_config
- 查看确认下面两项配置
RSAAuthentication yes
PubkeyAuthentication yes
默认不需要修改配置
转载者注:我的配置文件中没有 ‘RSAAuthentication’ 这一项,不影响密钥配置。
vim编辑器修改完后,按esc键退出编辑模式,然后输入:wq保存并退出。
- 当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录
PasswordAuthentication no
修改这设置需用密钥登录成功后修改,是否禁止密码登录根据个人需要而定
- 重启SSH
sudo service sshd restart
- 服务器私钥复制到客户端
因为生成的密钥是通过服务器Ubuntu生成的,因此需要把生成的私钥复制Windows 10上面。
可以看到都是存放在用户目录下面,需要注意是都是隐藏文件
重新打开vscode发现如此之爽,再也不需要再输命令
如果windows之前已经存在私钥和公钥,只需要把公钥安装到服务器上即可
转载者注:
如出现 “Could not establish connection to "your_server_ip_address"”请参照:
https://blog.csdn.net/qq_41854763/article/details/103317116
如需在客户端安装多个私钥(在一个客户端连接多个Linux服务器),可将私钥以不同的文件名保存到客户端,并在config文件中指定每个host的特定密钥文件,例:
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host 32
HostName 172.xx.xx.xx
User user_name1
IdentityFile ~/.ssh/id_rsa_32
Host 33
HostName 172.xx.xx.xx
User user_name2
IdentityFile ~/.ssh/id_rsa_33
Host 36
HostName 172.xx.xx.xx
User user_name3
IdentityFile ~/.ssh/id_rsa_36
更多推荐
所有评论(0)