DigitalOcean Ubuntu20.04服务器SSH公钥认证失败无法登录求助
问题根因初步定位
- 首先可以排除
known_hosts2不存在的影响:SSH客户端会按顺序尝试加载多个主机公钥存储文件,日志也明确提示Host '134.209.151.146' is known and matches the ED25519 host key,已经从默认的known_hosts文件匹配到了合法主机公钥,该报错属于正常日志,和认证失败无关。 - 核心问题从日志可初步判断:你上传的公钥是
test2.pub,但SSH客户端默认只会尝试id_rsa、id_ed25519等默认命名的私钥,日志中所有尝试的密钥列表里没有对应test2的私钥,服务端自然无法匹配到你上传的公钥,导致认证失败。 - 次要可能原因:服务端
.ssh目录或authorized_keys文件的权限不符合sshd的安全校验规则,即使公钥正确也会被拒绝。
排查解决步骤
第一步:先验证私钥匹配问题
连接时明确指定你生成的
test2私钥,执行命令:ssh -i ~/.ssh/test2 clive@134.209.151.146如果可以正常连接,说明就是私钥未指定的问题,你可以选择每次连接都加
-i参数,或者在本地~/.ssh/config中添加配置永久生效:Host do-server HostName 134.209.151.146 User clive IdentityFile ~/.ssh/test2后续直接执行
ssh do-server即可连接。第二步:如果指定私钥仍连接失败,检查服务端权限配置
如果你已经关闭了密码登录无法通过SSH进入,可以直接使用DigitalOcean后台Droplet详情页的网页控制台功能登录服务器,执行以下权限修正命令:
chmod 755 /home/clive chmod 700 /home/clive/.ssh chmod 600 /home/clive/.ssh/authorized_keys chown -R clive:clive /home/clive/.ssh同时确认
/etc/ssh/sshd_config中以下配置未被注释且取值正确:PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys改完重启sshd服务生效:
systemctl restart sshd
内容的提问来源于stack exchange,提问作者Clive
相关产品推荐
相关产品推荐

