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

Ubuntu 24.04 LTS:修改配置后SSH密码认证仍无法正常工作的排查求助

Ubuntu 24.04 LTS:修改配置后SSH密码认证仍无法正常工作的排查求助

遇到这种明明改了配置却不生效的情况真的闹心,我来给你分享几个实用的排查步骤,帮你定位问题:

一、先确认SSH服务的实际生效配置

你修改的sshd_config可能被其他配置覆盖了,直接看加载后的真实配置才靠谱:

  • 执行以下命令,输出当前sshd正在使用的所有配置:
    sudo sshd -T
    
  • 可以过滤出你关心的认证相关参数,更清晰:
    sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication'
    
    如果输出里这两个参数是no,说明你的主配置被其他文件覆盖了——Ubuntu 24.04默认会加载/etc/ssh/sshd_config.d/*.conf目录下的配置文件,检查这个目录里有没有优先级更高的配置,比如某些文件里把密码认证关了。

二、诊断密码认证失败的具体原因

直接看SSH服务的实时日志,能拿到最准确的拒绝原因:

  1. 先在服务器上打开实时日志监控:
    sudo journalctl -u ssh.service -f
    
  2. 然后在客户端尝试用ssh user@server_ip连接,回到服务器的日志窗口,你会看到详细的报错信息——比如是某个Match规则限制了该用户的认证方式,还是PAM模块阻止了密码登录,或者是密钥认证被强制启用了。

常见的日志提示比如:

User allan not allowed because account is locked
或者
Authentication refused: bad ownership or modes for directory /home/allan/.ssh

这些提示能直接帮你找到问题根源。

三、排查用户层面的潜在限制

有时候问题出在用户自身的配置或权限上:

  • 检查用户的~/.ssh目录和里面的文件权限:如果~/.ssh/authorized_keys存在但权限过于开放(比如组用户或其他用户有写权限),sshd会强制要求密钥认证,拒绝密码登录。正确的权限应该是:
    • ~/.ssh目录:700(只有所有者能读写执行)
    • ~/.ssh/authorized_keys:600(只有所有者能读写)
  • 确认用户是否被sshd_config里的Match规则针对:比如配置里有Match User your_username然后设置了PasswordAuthentication no,这会直接覆盖全局配置。
  • 检查PAM配置:KbdInteractiveAuthentication依赖PAM模块,打开/etc/pam.d/sshd,确保没有禁用密码认证的规则,比如有没有auth required pam_deny.so这类限制。

最后再确认一下SSH服务是否真的重启成功了:

sudo systemctl status ssh.service

看输出里的“Active”状态和“Started”时间,确认是你修改配置后的时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:24:52