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

Ubuntu 23.04无密码SSH登录问题求助

Ubuntu 23.04无密码SSH登录问题求助

我之前也碰到过一模一样的情况,新版本Ubuntu(22.10/23.04)里SSH服务的默认配置或者权限要求更严格了,给你几个实用的排查步骤,大概率能解决:

  • 检查远程服务器的权限配置
    这是最常见的坑!SSH对.ssh目录和authorized_keys文件的权限要求很严,权限太宽松会直接拒绝密钥登录。你在远程服务器上执行这几条命令:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    sudo chown $USER:$USER ~/.ssh -R
    

    简单解释下:.ssh目录必须设为700(只有自己能读、写、执行),authorized_keys必须是600(只有自己能读、写),而且整个.ssh目录的所有权必须属于你用来登录的用户,不能是root或者其他用户。

  • 检查SSH服务的配置文件
    编辑远程服务器的/etc/ssh/sshd_config文件,确保以下几个配置项是开启的:

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
    # 如果你还想保留密码登录作为备用,可以暂时开着下面这个,搞定密钥后再关闭
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    

    修改完记得重启SSH服务生效:

    sudo systemctl restart sshd
    
  • 查看登录日志找具体报错
    有时候权限和配置都没问题,但还是有隐藏问题,这时候看日志最管用。在远程服务器上执行:

    sudo tail -f /var/log/auth.log
    

    然后在本地尝试SSH连接,盯着日志看会弹出具体的错误信息,比如密钥不匹配、某个文件权限不对之类的,根据报错再针对性解决。

  • 确认本地公钥和远程的authorized_keys完全一致
    有时候复制公钥的时候不小心少了字符或者多了空格,导致密钥不匹配。你可以在本地执行cat ~/.ssh/id_rsa.pub(如果用的是RSA密钥,其他类型比如ED25519就换成对应的文件名),然后在远程执行cat ~/.ssh/authorized_keys,对比两段内容是不是完全一样,包括开头的ssh-rsa(或其他类型标识)和结尾的注释都要对应上。

我当时就是权限配置的问题,改完之后立刻就能无密码登录了,你一步步排查应该能解决~

备注:内容来源于stack exchange,提问作者Ubuntu User

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:48:08