【报错记录】解决CentOS免密失败的问题,以及解决免密问题的排查流程

前言

本文相当于对之前的文章进行的补充【原创】三台CentOS7非root用户间实现相互间的免密登录_DCTANT的博客-CSDN博客

现场遇到一台旧服务器与其他服务器免密失败的问题,明明.ssh目录中authorized_keys中的公钥设置都是正确的,但是别的服务器连它都得输密码,我本以为2分钟就能解决了,没想到搞了半小时才解决。

问题排查

1、authorized_keys文件权限

首先排查authorized_keys这个文件的权限,一般来说这个文件的仅有当前用户有编辑权限,其他用户都没有编辑权限,即644,或者600都可以。

如果authorized_keys包含了其他用户的编辑权限,则会导致免密失效。

目前来看这个文件的权限是正确的

 2、查看authorized_keys中的内容是否正确

之前我遇到过好几次了,由于编辑authorized_keys内容的时候用的vi编辑器,然后直接就粘贴了,根本没有先切换为插入模式再粘贴,导致第一个s作为切换功能的命令被吞了,少了第一个字母,导致免密失败。

还有就是少复制了另外几台服务器的id_rsa.pub的内容,或者是本机的id_rsa.pub的内容。

然后这次也没这个问题。

3、查看authorized_keys文件名是否正确

有些人喜欢手敲命令,然后authorized_keys这个文件不是漏最后一个s,就是中间漏字母,也导致免密失败。目前来看我这边也没这个问题

4、查看免密自己

免密先要保证本服务器对于自己的免密,即直接执行:

cp id_rsa.pub authorized_keys

这样生成的authorized_keys不仅能完成对自己免密,就连权限都是对的

然后我执行了对自己的ssh远程连接,结果发现对自己ssh连接都需要输入密码,那肯定不是免密做错了!

当时就有一种眼前一黑的感觉,心想问题严重了,突破我的认知了

5、查看日志

日志路径为/var/log/secure,需要用root用户查看,执行

tail -f -n200 /var/log/secure

日志显示 Authentication refused: bad ownership or modes for directory /home/dct

问题解决

这就很奇怪了,我这个dct用户肯定是有/home/dct这个目录权限的,怎么可能会有这个问题,然后我直接问ChatGPT了,它回答到

“Authentication refused: bad ownership or modes for directory /home/dct"错误通常表示目录”/home/dct"的所有权或权限设置不正确,导致SSH服务器在认证时拒绝访问。

要解决这个问题,您可以按照以下步骤进行操作:

检查目录的所有权:确保目录"/home/dct"的所有权配置正确。对于SSH用户来说,这个目录应该归属于正确的用户,一般对应于具有相应权限的用户帐户。您可以使用以下命令来更改目录的所有权:

sudo chown -R <用户>:<用户组> /home/dct

将<用户>和<用户组>替换为正确的用户和用户组。

检查目录的权限设置:确保目录"/home/dct"的权限设置正确。对于SSH用户来说,该目录的权限应被设置为700,这将确保只有所有者可以对其进行读取、写入和执行操作。您可以使用以下命令来设置目录的权限:

sudo chmod 700 /home/dct

这将设置"/home/dct"目录的权限为700。

确保按照以上步骤检查并更正目录"/home/dct"的所有权和权限设置。如果问题仍然存在,您可能需要进一步检查SSH服务器的配置文件和日志,以便确定是否有其他配置问题或错误。

用户权限肯定是对的,但是用户目录的权限有问题!!

不知道是哪个线上操作的“人才”,把用户的家目录的权限改成了这样,导致了免密失败!!

执行 

sudo chmod 700 /home/dct

 即可解决这个问题!真是活久见了,这个用户文件夹权限也会导致免密失败,我也是第一次遇到!!

 

猜你喜欢

转载自blog.csdn.net/DCTANT/article/details/131659229
今日推荐