You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DigitalOcean Ubuntu20.04服务器SSH公钥认证失败无法登录求助

问题根因初步定位

  1. 首先可以排除known_hosts2不存在的影响:SSH客户端会按顺序尝试加载多个主机公钥存储文件,日志也明确提示Host '134.209.151.146' is known and matches the ED25519 host key,已经从默认的known_hosts文件匹配到了合法主机公钥,该报错属于正常日志,和认证失败无关。
  2. 核心问题从日志可初步判断:你上传的公钥是test2.pub,但SSH客户端默认只会尝试id_rsa、id_ed25519等默认命名的私钥,日志中所有尝试的密钥列表里没有对应test2的私钥,服务端自然无法匹配到你上传的公钥,导致认证失败。
  3. 次要可能原因:服务端.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 10:15:03