AD 登录到 Solaris Zone 定期不起作用

AD 登录到 Solaris Zone 定期不起作用

我有一个名为“AZone”的 Solaris 11.1 区域。我已将该区域加入 Active Directory 域(Windows Server 2008),目的是让用户能够使用他们的 AD 帐户登录 Solaris 区域。经过很多麻烦和摆弄 kerberos、LDAP 和 PAM 之后,我终于让它工作了!但是,我遇到了一个问题,即以 AD 用户身份登录有时会失败...

我在 AD 上设置了一个名为“jpublic”的虚拟用户。我知道 jpublic 在大多数情况下都可以成功登录 AZone(我使用的是 SSH)。但是,在一段时间内没有 AD 用户登录 AZone 后,jpublic 的首次登录尝试会失败。然后,如果我立即尝试再次以 jpublic 身份登录,它就会成功。

我已打开 PAM 日志记录,这是目前为止我唯一能找到该问题的线索。在授权日志中,登录失败时,我收到以下三条消息,然后是正常的 PAM 加载消息:

Nov 11 10:29:02 azone sshd[2923]: [ID 800047 auth.info] Illegal user jpublic from 192.168.160.161
Nov 11 10:29:02 azone sshd[2923]: [ID 800047 auth.info] input_userauth_request: illegal user jpublic
Nov 11 10:29:02 azone sshd[2923]: [ID 800047 auth.info] Failed none for <invalid username> from 192.168.160.161 port 57148 ssh2
Nov 11 10:29:02 azone sshd[2923]: [ID 604530 auth.debug] PAM[2923]: pam_start(sshd-kbdint,jpublic,7178c:604e08) - debug = 1
Nov 11 10:29:02 azone sshd[2923]: [ID 713382 auth.debug] PAM[2923]: pam_set_item(604e08:service)

成功登录后,我看不到 auth.info 消息,但我只看到 pam_start 调用,最终登录成功。

第一次登录失败的原因是什么?似乎第一次登录时没有达到缓存值,但尝试登录的过程导致缓存刷新,因此第二次登录时所需的数据可用。可能是刷新的 kerberos 票证出了问题?ldap_cachemgr 守护进程出了问题?我承认我对这一切的工作原理只有一个大致的了解,所以任何关于如何排除故障的提示都会有所帮助。此外,如果它们有用的话,我可以按照某人的建议发布 PAM 配置文件或命令输出。

答案1

这实际上根本不是 Kerberos 问题。这是系统上用户数据库使用的缓存问题。

如果您真的是老派的并且只使用 /etc/passwd 中的条目,那么非法用户消息将意味着该用户不存在于密码文件中。

我无法访问 Solaris 11,而且我知道它与 Solaris 10 有很大不同。在 Linux 机器或 Solaris 10 上,我会告诉您查看 /etc/nsswitch.conf 并查看支持 passwd 文件的内容。我不知道 Solaris 11 上的内容是什么。

相关内容