出于安全和便捷考虑,一直都使用公钥认证的方式登录服务器。今天登录服务器的时候,公钥认证的方式突然不work,需要输入密码才能登录。为了回到方便的公钥认证方式,只要解决这个问题。
-
查看自身目录下的.ssh文件,确认 id_ras 和 id_rsa.pub 都存在:
ll ~/.ssh
执行这个命令,文件都存在并且权限正确,PASS!
-
登录服务器查看公钥在服务器的授权keys里面:
ll ~/.ssh/ && cat ~/.ssh/authorized_keys
发现文件权限正常,并且授权key的内容正确,PASS!
-
开启ssh的debug信息,查找原因:
ssh server -v
查看输入的日志,发现公钥发送后,服务器并没有接受,认证方式于是跳转到了密码认证。本来寄希望于这个命令找点线索,现在觉得其实也没有什么卵用!
-
登陆服务器,查看审计信息:
su -
less /var/log/secure
仔细查看信息,终于找到了原因:
Authentication refused: bad ownership or modes for directory /home/tlanyan
。抓住这个线索,查看一下家目录的配置:ls /home/tlanyan
噢,原来是不小心把属主弄错了。将目录的属主切换为自身:
chown tlanyan /home/tlanyan
退出,再次登陆,发现一切OK~