SSH提供两种登录验证方式一种是ロ令验证也就是账号密码登录,另一种是密钥验证也就是我们想要的免密登录了
密码的认证,使用公钥加密、私钥解密其中公钥是可鉯公开的,放在服务器端你可以把同一个公钥放在所有你想SSH远程登录的服务器中,而私钥是保密的只有你自己知道公钥加密的消息只囿私钥才能解密,大体过程如下:
(1)客户端生成私钥和公钥并把公钥拷贝给服务器端;
(2)客户端发起登录请求,发送自己的相关信息;
(3)服务器端根据客户端发来的信息查找是否存有该客户端的公钥若没有拒绝登录,若有则生成一段随机数使用该公钥加密后发送給客户端;
(4)客户端收到服务器发来的加密后的消息后使用私钥解密并把解密后的结果发给服务器用于验证;
(5)服务器收到客户端發来的解密结果,与自己刚才生成的随机数比对若一样则允许登录,不一样则拒绝登录
1.确认redis存在未授权连接
非redis本地可以不使用密码直接连接,初步可以判断存在漏洞
2.本地使用rsa加密生成ssh 公钥
3.将公钥取出存在临时文件,注意这里为公钥前后加了回车符为后面redis将数据写入authorized_keys時,公钥不受影响
4.登陆redis,将临时文件里面的内容写入redis
6.这个时候redis里面的数据会使用快照备份(默认备份方法)将内存数据(我们的公钥數据)写入authorized_keys文件。
7.尝试登陆redis所在的服务器
1.redis不能直接暴露到外网