ssh免密登入失败(Authentication refused: bad ownership or modes for directory)

现象:配置完免密登入后,部分机器仍需要输入密码才能登入

通过命令 /var/log/secure查看日志

  1. 出现问题的机器
    Apr 26 22:58:47 hadoop102 sshd[58994]: Authentication refused: bad ownership or modes for directory /home/evil/.ssh
    Apr 26 22:58:52 hadoop102 sshd[58994]: Accepted password for evil from 192.168.1.102 port 50404 ssh2
    Apr 26 22:58:52 hadoop102 sshd[58994]: pam_unix(sshd:session): session opened for user evil by (uid=0)

  2. 正常登入的机器
    Apr 26 22:55:56 hadoop103 sshd[56035]: Accepted publickey for evil from 192.168.1.102 port 41096 ssh2: RSA SHA256:mM1gzyL03gHGmoO8tHzTvXtYvNNZK0HdYzFsFZPjSec
    Apr 26 22:55:56 hadoop103 sshd[56035]: pam_unix(sshd:session): session opened for user evil by (uid=0)

从这里可以看出:出现问题的机器刚开始进行了免密登入的尝试,只是失败,然后就改成了输入密码登入;而正常登入的机器Accepted publickey,顺利登入。

原因:
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
id_rsa.pub 及authorized_keys权限一般为644
id_rsa权限必须为600

找到对应目录下查看:

1、三个文件都符合要求
在这里插入图片描述
2、.ssh目录显然不符合
在这里插入图片描述
.ssh目录权限是775了

解决:
chmod 700 .ssh/
权限改了后,登入成功

仔细想想,造成这种情况。原来是因为这个.shh目录是我自己通过mkdir创建的,使得初始权限就是775了。

为什么要自己创建呢?因为那时没有!!当前用户创建出来后,并未在Linux上登入过,没有自动产生这个文件。其它机器最开始也没有.ssh目录,而当前机器进行发送公钥的时候,其他机器会自动创建.ssh目录,这是创建的.ssh的权限是符合要求的! 最终导致了当前机器免密登入失败,而当前机器登入其他机器却又能成功。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值