云主机SSH登录失败:公钥认证问题解决方案
公钥配置验证
确保客户端生成的公钥已完整上传至云主机的~/.ssh/authorized_keys
文件,使用ssh-copy-id
命令可避免手动复制导致的格式错误。同时需验证服务器端密钥存储路径是否与sshd_config
中AuthorizedKeysFile
配置一致。
权限检查与修复
执行以下权限修复命令可解决90%的权限问题:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
(客户端私钥)
注意文件所有者需与登录用户完全匹配。
SSH服务配置
检查/etc/ssh/sshd_config
关键配置项:
PubkeyAuthentication yes
PasswordAuthentication no
RSAAuthentication yes
(旧版SSH)
修改后需执行systemctl restart sshd
重启服务。
密钥类型支持
新版OpenSSH(8.8+)默认禁用ssh-rsa算法,可通过以下方式兼容:
PubkeyAcceptedAlgorithms +ssh-rsa
HostKeyAlgorithms +ssh-rsa
建议优先升级客户端使用ed25519等更安全的密钥类型。
日志排查方法
通过tail -f /var/log/auth.log
实时查看认证日志,重点关注以下关键字:
- Authentication refused
- Failed publickey
- key type mismatch
结合ssh -v
开启调试模式可获取详细连接信息。