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

OCI Ubuntu 22.04 ARM实例开启SSH密码登录后仍提示Permission denied (publickey)

OCI Ubuntu 22.04 ARM实例开启SSH密码登录后仍提示Permission denied (publickey)

我之前在OCI的ARM实例上也碰到过一模一样的问题,明明按步骤改了配置,还是只能用密钥登录。给你几个实际排查的方向,应该能找到问题所在:

  • 检查sshd_config里的关联配置项
    光改PasswordAuthentication yes可能不够,Ubuntu 22.04的默认sshd配置里,还有几个项会影响密码登录:

    • 确认ChallengeResponseAuthentication设置为yes(部分版本中这个选项和密码登录逻辑绑定)
    • 确保UsePAM yes没有被注释或改成no,PAM模块负责处理密码验证,关闭后密码登录必然失效
    • 重点检查配置文件末尾的Match块!很多时候默认配置里会有针对特定用户或IP的匹配规则,不小心覆盖了PasswordAuthentication的设置,比如Match User ubuntu后面又设了PasswordAuthentication no,一定要仔细扫完整文件
  • 验证sshd配置是否生效
    别光盲目重启服务,先运行sshd -t检查配置文件语法,如果有拼写错误、格式问题,sshd重启后其实没加载新配置,还是沿用旧规则。只有当命令无报错输出时,再执行重启才有用。

  • 查看sshd实时日志找拒绝原因
    这是最直接的排查方法!在实例上执行journalctl -u sshd -f打开实时日志,然后从远程尝试密码登录,日志里会明确告诉你拒绝的具体原因——比如是PAM验证失败、用户权限不达标,还是配置根本没生效。我当时就是从日志里发现,默认配置的AllowGroups限制了只有特定组的用户能登录,而ubuntu用户不在这个组里。

  • 修复用户目录权限
    sshd对用户家目录和.ssh目录的权限要求很严格,如果权限过于开放(比如家目录设成777),会被判定为不安全,直接拒绝密码登录。执行下面的命令修复权限:

    chmod 755 /home/ubuntu
    chmod 700 /home/ubuntu/.ssh
    chmod 600 /home/ubuntu/.ssh/*
    
  • 确认防火墙与安全组规则
    虽然你能通过密钥登录说明22端口是通的,但还是确认下实例上的ufw防火墙状态(Ubuntu 22.04默认ufw是关闭的,但以防万一),以及OCI控制台里的安全组规则,确保入站22端口对需要的IP范围开放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:19:36