我在 Centos 7 上运行了两台 FreeIPA 服务器 - 一台是主服务器,另一台是副本服务器。我可以使用 GUI 在主服务器上创建一个新用户帐户,该帐户在两台服务器上都显示,处于活动状态且未被锁定。我可以使用任一服务器上的 FreeIPA gui 登录。我可以使用 ssh 登录到主服务器和任何域客户端,但当我(尝试)使用 ssh 登录副本服务器时,我在 /var/log/secure 中收到以下内容:
日期时间服务器 sshd[pid]: pam_sss(sshd:auth): 身份验证成功; .... 用户 = testuser
日期时间服务器 sshd [pid]:pam_sss(sshd:account):拒绝用户 testuser 访问:4(系统错误)
日期时间服务器 sshd[pid]: 错误: PAM: 来自 ip 的 testuser 的用户帐户已过期
sssd 配置在逻辑上是等效的,因为条目引用主服务器和副本。krb5.conf 文件在逻辑上是等效的,因为服务器条目引用主服务器和副本。/etc/pam.d 中的密码验证文件是相同的。新帐户和现有帐户的行为方式相同。sshd 配置文件是相同的。
我错过了一些东西......有什么想法吗?
答案1
据我所知...
这是你的真正错误:
日期时间服务器 sshd [pid]:pam_sss(sshd:account):拒绝用户 testuser 访问:4(系统错误)
这是 sshd 的猜测(并且几乎肯定是猜错的):
日期时间服务器 sshd[pid]: 错误: PAM: 来自 ip 的 testuser 的用户帐户已过期
sshd 正在调用 PAM。
测试account
“本应”检查账户是否过期。然而,它可以因多种原因拒绝用户,而账户过期只是其中一种可能。
无论出于什么原因,它都失败了。 sshd 假设它失败是因为帐户已过期,但这远非唯一的可能性。
例如,如果用户有效并且密码正确,但没有 hbac 规则允许此特定用户 ssh 到此特定主机,则密码检查通过,但帐户检查失败,并导致此错误。