ssh 密钥登录云服务器提示未注册
更新时间:2024-11-16 11:03:11
PDF
问题现象
ssh 使用密码远程的时候正常,ssh 秘钥登录提示未注册,centos7.5 的云服务器。
排查步骤
-
检查 /etc/ssh/sshd_config 和 /etc/ssh/ssh_config 的配置,与正常的云服务器做对比 egrep -v “#^$” /etc/ssh/sshd_config ,并没有发现异常
-
检查了.ssh 目录权限和 authorized_keys 文件权限,一般 .ssh 目录的权限为 700 或者 755 authorized_keys 的文件权限为 600 或者 644,没有发现异常
-
检查了防火墙以及 /etc/hosts.deny /etc/hosts.allow 有没有配置黑名单,并没有异常
-
清空 know_hosts 的内容,还是不行
-
开启了的 debug,有以下内容
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512> debug3: receive packet: type 6 debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug3: send packet: type 50 debug3: receive packet: type 51 debug1: Authentications that can continue: publickey debug3: start over, passed a different list publickey debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Trying private key: /root/kp-89l1y95c
-
systemctl sshd status 的时候发现了一个报错
Disconnected from 152.136.157.37 port 51400 [preauth]
-
然后查了一下 /var/log/secure 的日志,里面有个关键的报错
Oct 10 23:50:18 i-jlabc309 sshd[2797]: Authentication refused: bad ownership or modes for directory /root
然后想到可能是 root 目录权限的问题,之前只检查了 .ssh 目录的权限,结果果然是 root 目录权限为 600,改成 700 以后就正常了
最终原因
sshd 为了安全,对属主的目录和文件权限有所要求。如果权限不对,则 ssh 的免密码登录不生效。 用户目录权限为 755 或者 700,就是不能是 77x。 .ssh 目录权限一般为 755 或者 700。 rsa_id.pub 及 authorized_keys 权限一般为 644 rsa_id 权限必须为 600
还需要检查一下属主信息,如果不对的话,需要做以下修改 chown root.root /root chown root.root -R /root/.ssh