ssh 公钥免密码登录失败的原因与解决办法

在使用 ssh-copy-id 成功复制公钥到远程主机之后,使用 ssh 登录依然提示需要密码,可以的原因为:

  1. 权限问题
  2. SSHD配置问题
  3. 如果是 RedHat/CentOS,还有可能是启用了 selinux 的问题


一、权限问题的解决办法:

  1. 远程主机对应用户的 ~ 目录,权限应为 550 或 750;
  2. 远程主机对应用户的 ~/.ssh 目录,权限应为 700;
  3. 远程主机对应用户的 ~/.ssh/authorized_keys 文件,权限应为 600

命令如下

chmod 775 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys


二、配置问题,编辑 /etc/ssh/sshd_config 文件,确保以下参数的值一致:

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
# 如果必需,关闭严格模式
StrictModes no

修改之后,重启 sshd,例如:

service sshd restart
或
service ssh restart


三、RedHat/CentOS的selinux问题

如果RedHat/CentOS开启了selinux,会导致很多怪异的问题,绝大多数生产环境不需要selinux,安装完系统之后,第一件事就应该把selinux关闭。方法是编辑 /etc/sysconfig/selinux ,改成:

SELINUX=disabled

再重启系统

reboot


你可能感兴趣的:(ssh 公钥免密码登录失败的原因与解决办法)