sshd的key认证【用户免密登陆】&取消原有加密登陆

我们的登陆pc的时候都是需要输入密码的,在用一台pc远程连接另一台pc时也是如此。那如果我们对某个用户足够信任,不需要其密码登陆呢?或者我们发现所有用户都可以通过试验密码来登陆我们,那我们不想让其他人用试验密码的方式登陆我们呢?

那么sshd的key认证就来了! \color{blue}{免密登陆!}

【1.ssh的key免密加密】

1.假定一台主机为服务器,另一台为客户端。首先在服务器上 ssh-keygen 生成锁
在这里插入图片描述
2.过程中系统会提问三次,分别为询问存放在哪个目录,输入密码,再次输入密码。这里我们全部回车跳过即可。随后就会出现如下界面。
在这里插入图片描述
3.我们可以ls /root/.ssh进行查看,确认一下。【这里不演示】。随后用ssh-copy-id -i /root/.ssh/id_rsa.pub root@服务器ip 来将公匙【id_rsa.pub】装给服务器自己。第一次建立的话会提示输入yes一次,以及输入用户密码。出现【Number of key(s) added 】则说明成功。
在这里插入图片描述
4.接下来我们已经给服务器上锁完成了,该把钥匙发给客户端了【scp /root/.ssh/id_rsa root@客户端ip:/root/.ssh/】。同样第一次建立连接需要输入yes确认以及输入密码。
在这里插入图片描述
5.上图所示即传输成功【远程连接上传】。我们为了确保,在客户端上ls /root/.ssh/ 进行查看【出现authorized_keys说明成功】,此时服务器上的所有操作完成。
在这里插入图片描述
6.最后:在客户端用 ssh root@服务器ip 进行连接。发现免去了输入密码。成功!
在这里插入图片描述


复述一下步骤:
1.服务器ssh-keygen生成锁
2.ssh-copy-id -i /root/.ssh/id_rsa.pub root@服务器ip 【给服务器上锁,给予公匙】
3.scp /root/.ssh/id_rsa root@客户端ip:/root/.ssh/ 【发送私匙给客户端,让客户端有免密登陆的钥匙】
4.客户端ssh root@服务器ip ,免密登陆,连接成功。


上述操作实现了我们给某一个用户特权,让其可以不用输入密码,直接赋予登陆的权限。那么我们还想隔绝掉其他用户,只允许让这一个用户通过免密登陆我们时,该怎么做呢?
在这里插入图片描述此时我们在客户端建立用户xyy,试图连接服务器,发现通过密码登陆,连接成功。


\color{blue}{取消原有加密:}

1.在服务器上 vim /etc/ssh/sshd_config 【更改配置文件】
在这里插入图片描述
2.78行附近,将【PasswordAuthentication Yes】改为【PasswordAuthentication no】,禁止密码登陆。(按i进入插入模式去更改,改完先esc退出插入模式,再:wq退出保存)
在这里插入图片描述
在这里插入图片描述
3.systemctl restart sshd 重起服务,使服务立即生效。
在这里插入图片描述
4.再次用客户端的xyy用户去尝试连接服务器,发现连接请求被拒绝。成功!
在这里插入图片描述


               大大的小小阳

猜你喜欢

转载自blog.csdn.net/dddxxy/article/details/89175030