![auth.log 中有错误但可以登录;LDAP/PAM](https://linux22.com/image/563208/auth.log%20%E4%B8%AD%E6%9C%89%E9%94%99%E8%AF%AF%E4%BD%86%E5%8F%AF%E4%BB%A5%E7%99%BB%E5%BD%95%EF%BC%9BLDAP%2FPAM.png)
我有一台运行 OpenLDAP 的服务器。当我启动 ssh 会话时,我可以顺利登录,但日志中会出现错误。只有当我使用 LDAP 帐户登录时才会发生这种情况(因此不会使用 root 等系统帐户)。任何帮助消除这些错误的帮助都将不胜感激。
/var/log/auth.log 中的相关部分
sshd[6235]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=example.com user=peter
sshd[6235]: Accepted password for peter from 192.168.1.2 port 2441 ssh2
sshd[6235]: pam_unix(sshd:session): session opened for user peter by (uid=0)
pam 公共会话
session [default=1] pam_permit.so
session required pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_limits.so
session required pam_unix.so
session optional pam_ldap.so
pam 通用身份验证
auth [success=1 default=ignore] pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
auth required pam_permit.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022 silent
auth sufficient pam_unix.so nullok_secure use_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
pam 通用帐户
account [success=2 new_authtok_reqd=done default=ignore] pam_ldap.so
account [success=1 default=ignore] pam_unix.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
account sufficient pam_ldap.so
account sufficient pam_unix.so
答案1
出现此错误的原因是pam_unix
模块被要求检查 LDAP 用户的密码,但结果当然是失败了。PAM 配置会忽略此失败,但模块还是会记录它(并且无法禁用此功能)。
但是,您的配置对我来说看起来很奇怪。您使用了pam_unix
和pam_ldap
两次,我建议您清理一下。如果您只使用它们的第一次出现,错误消息应该会消失(因为pam_unix
对于成功通过身份验证的 LDAP 用户将被跳过)。但是,我不确定您想通过双重检查和该pam_succeed_if
行实现什么目的,因此请确保您知道在更改此配置时要做什么。