有一说一,真的方便
妈妈再也不用担心我忘记密码啦
[TOC]
闲话
因为咱一开始连服务器都是手动ssh连的,xshell那个软件用了一下就没用过,还不是免费,所以也没打算用它。于是每次连服务器的时候都是cmd打开,ssh输入一长段命令然后回车再输入一长串密码,好麻烦。
前几天捣鼓vsc的时候注意到左侧栏第五个远程资源管理器,然后百度了下,捣鼓了下发现挺好用的,不用输入那么多东西了,但是还要输密码
然后又发现了可以通过自己的密钥实现免密码连接,捣鼓了下,舒服了
不过现在还没建图床,md文件里面的图片不太好传,就只记一下密钥实现免密码连接吧,应该不怎么需要图片。
准备
1.ssh
2.好像没了?
本地和服务器都要安装ssh,这些东西的安装方法百度一大堆,就不说了,服务器那边当然也要开启ssh的服务和22端口,上面百度到的里面应该也有讲,略过
生成密钥
首先,如果本地还没连过服务器的话,建议先手动ssh连一下服务器,存一下服务器的公钥什么的,之后设置known_hosts就不用设置了。(本博文不提供known_hosts设置方法 其实主要是因为咱也没搞懂这块)
打开命令行,输入
ssh-keygen
然后三个回车,完事。其中第一个回车确认的是生成密钥公钥的存放位置,第二个是设定密码,第三个是确认密码,默认是空,也就是没密码,如果输入了,之后每次连似乎还是要输密码,当然也更安全,不过我这种小用户也不用太过担心。所以我全是默认。
C:\Users\W8362>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\W8362/.ssh/id_rsa):
Created directory 'C:\Users\W8362/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\W8362/.ssh/id_rsa.
Your public key has been saved in C:\Users\W8362/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
类似于上面这样
linux的默认路径是/home/schacon/.ssh/id_rsa
完了之后去默认目录下就能看到了,其中私钥是保存在自己这边;公钥,也就是后缀是.pub的文件是保存在服务器那边,具体的待会讲
服务器配置
把公钥放在服务器
就是本地那个路径下生成的.pub的那个文件,随便怎么放过去(scp?),随便放在哪,不过反正我放在了.ssh文件夹下面,方便之后操作(我上传过去顺便改名成my_pc_id_rsa.pub)
# ls ~/.ssh
authorized_keys my_pc_id_rsa.pub
把公钥写入authorized_keys
随便怎么写入,咱是这样写的
cat my_pc_id_rsa.pub >> authorized_keys
修改配置文件开启密钥验证
编辑配置文件
vim /etc/ssh/sshd_config
有就修改,没有就加,把这几项修改成这样:(善用查找指令)
AddressFamily inet
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin 、 PubkeyAuthentication 这两项是要修改成yes,PermitRootLogin 是允许root用户认证登录,而PubkeyAuthentication 是启用公钥认证。AuthorizedKeysFile是公钥路径,生成的。最后把PasswordAuthentication yes就允许密码登录,保存重启ssh服务。
设置权限
ssh目录的权限700;
ssh/authorized_keys文件权限600;
chmod 600 authorized_keys
cd .. && chmod 700 -R .ssh
结束,ssh测试一下
# ssh root@**.**.**.**
Last login: Sat Apr 24 17:23:37 2021 from **.**.**.**
Welcome to Alibaba Cloud Elastic Compute Service !
顺带一提,vsc里面配置远程资源管理器也挺简单的,安装插件Remote - SSH,再设置一下
Host ali_cloud (随便起)
HostName **.**.**.**
User root
就好了
以上