配置SSH免密登录失败?到这看看

配置SSH免密登录失败?到这看看

摘要:配SSH免密登录踩过的坑

0x01背景

昨天本人的博客出了点问题,导致博客无法被push到服务器上,原本想花点时间修下这个问题,但修着修着发现ssh免密登录出了问题,查了一堆资料,看了一堆别人遇到的问题最后终于是解决了。所谓前人种树后人乘凉,记录一下自己的解决过程供后来人参考。

0x02本人计算机环境

客户端win10
服务端CentOS7
个人觉得配置这个其实同环境的影响差异并不大

0x03SSH免密登录原理过程

这里借用CSDN上的博主code_and_music的这篇博客 里的图

总结而言,原理是基于公钥私钥这种非对称加密验证的原理,不多讲;过程其实就是两步,第一步,一端生成公私秘钥生成的id_rsa.pub为公钥,如上图所示,其需要被复制到本地及另一端中的.ssh/authorized.keys文件中。同时需要注意的是,服务端的.ssh文件夹权限至少为600,authorized.keys权限至少为700。
本人的过程与这个稍有不同,本人是将本地win10中生成的公钥复制到了服务器的authorized.keys中。这边不做赘述,只讲讲一些坑点:

0x04坑点

坑点一:权限问题

如上面所说,要求我们的.ssh文件夹权限至少为700,authorized.keys权限至少为600。如果不这样配置,免密登录是会失败的,当然,一般出错不会是这种情况,但还是得注意;

坑点二:ssh配置不全

首先,我们通过命令

1
sudo vim /etc/ssh/sshd_config

ssh必须要打开的是这几个配置项:

一般来讲,打开这几个应该就没问题。但是,ssh就是那么玄学,跟我昨天晚上一样。有一个严格模式的配置项,如下图:

默认为yes,改成no。其实按理来说,这个严格模式检查的是文件、文件夹的权限,也就是我们上面设置好的应该不会出错,但我偏偏就是这里出问题了。我的建议是,先不要动这个,不行再把这个打开。
一般来讲,配好了上面的基本上不会出什么问题了,就可以直接实现免密登录了。

更多坑点

还有这样一些情况:因为selinux打开了进不去的,可以把这个禁用了;因为sshd权限问题进不去的,这个可以百度下。

0x05写在后面

有时候这种东西确实很烦人,因为这破事还有hexo的push问题折腾了一晚上,也是晕死。就这么多吧,如果有不理解的欢迎私信来交流。学习去了~


评论