发生了一些奇怪的事情,一些用户无法通过我们的 LDAP 进行身份验证来访问服务(SSH 连接、Samba 等)。
他们的条目在 LDAP 中,一切似乎都很好,我与 5 分钟前使用相同脚本创建的工作 LDAP 条目进行了比较,我能看到的唯一区别是 ID/时间戳(sambaPwdMustChange
,等等……)
如果我这样做,getent passwd | grep "username"
我会找到他们的记录,但 ssh username@localhost 会失败(但它再次适用于使用相同脚本创建的其他用户)
我的日志在这里 /var/log/ldap/slapd.d 显示错误消息
Apr 9 14:09:48 je nslcd[3293]: [2fc6ce] lookup of user uid=someone,ou=People,dc=something,dc=com failed: Invalid credentials
但是当我在 phpldapadmin 界面上检查他们的密码时,它确实与我输入的密码匹配。我尝试使用默认密码 123456789,该密码适用于使用相同脚本创建的其他用户。
有任何想法吗 ?
编辑1
进行身份验证
ldapwhoami -vvv -D "uid=someone,ou=People,dc=something,dc=com" -x -W
并且相关密码确实返回Success (0)
编辑2
针对同一 LDAP 对这些用户的身份验证在许多应用程序上都有效,例如使用 devise ldap-authenticatable gem 的 Dokuwiki 和 Rails 应用程序。只有 SSH 和 Samba 似乎有问题。
答案1
不久前我也遇到过类似的问题。当我查看时,/var/log/messages
我发现 sshd 正在抱怨非法用户。如果是这种情况,即使您的密码正确,ssh 也不会让您登录。我的解决方案是重新启动 nscd
service nscd restart
话虽如此,getent 对您有用,所以这可能不是您的解决方案。