ssh配置免密后依然需要输入密码的问题解决及排查过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh配置免密后依然需要输入密码的问题解决及排查过程相关的知识,希望对你有一定的参考价值。

参考技术A 先检查ssh配置文件,包括客户端配置文件ssh_config和服务端配置文件sshd_config
客户端配置文件路径:/etc/ssh/ssh_config
文件内容:

服务端配置文件路径:/etc/ssh/sshd_config
文件内容:

服务端和客户端按这个配置文件来配是没有问题的,亲测。
PubkeyAcceptedKeyTypes +ssh-dss 是我后加上的参数,但是它并不是之前免密无效的原因,因为我之前生成的密钥使用的是rsa而不是dsa。

所以配置文件这块是没有问题的。

首先排查密钥文件authorized_keys的权限,它的权限严格要求是600,因为在步骤1中做了这个操作,所以它的权限是正确的;

接着排查/home/xxx/.ssh目录的权限,它的权限须是700,检查后发现权限是正常的700;

再接着用户主目录的权限,ll /home 查看主目录/home/xxx的权限,发现它的权限是777,然后我把他改小点,改为755,然后再通过ssh localhost测试,这时免密就成功了。

所以之前免密失效的根本原因还是权限的问题,ssh不允许用户的主目录和.ssh目录以及authorized_keys文件的权限开放得太大。

CentOS SSH免密登录问题解决

CentOS中SSH的免密配置基本上和在Ubuntu上配置一样,但在配置过程中遇到一个问题,在配置好后却依旧需要输入密码才可以登录。下面是解决此问题的过程

  • 检查authorized_keys文件权限,并设置为700

chmod 700 authorized_keys

  • 检查/etc/ssh/sshd_config文件

将 #StrictModes yes 设置为 StrictModes no

将 #AuthorizedKeysFile .ssh/authorized_keys 设置为AuthorizedKeysFile .ssh/authorized_keys

  • 删除/root/.ssh/known_hosts文件
  • 重启ssh

service sshd restart

 

对于sshd_config文件,也查看了ubuntu里面的设置,StrictModes 是设置为yes的,但免密成功,并不需要像上面那样修改,没有搞清楚具体的差别,但免密问题算是解决了,后面再仔细研究一下

 

以上是关于ssh配置免密后依然需要输入密码的问题解决及排查过程的主要内容,如果未能解决你的问题,请参考以下文章

ssh localhost 配置免密登陆仍需要密码的解决方法

CentOS 8 配置 authorized_keys 免密登录后,免密登录失败的排查以及最终的解决

CentOS 8 配置 authorized_keys 免密登录后,免密登录失败的排查以及最终的解决

CentOS 8 配置 authorized_keys 免密登录后,免密登录失败的排查以及最终的解决

ssh无法免密登陆

CentOS SSH免密登录问题解决