因此,我有一个已加入广告的 RHEL 服务器。即使使用正确的密码,用户也无法登录。
我可以通过控制台登录,但只能使用 root 登录,所有 AD 帐户都不起作用。我无法使用 root 通过 Putty 登录,它只能通过控制台工作。 AD用户无法通过控制台登录,只有root登录有效。
令人沮丧的是,日志毫无帮助。
当尝试通过 SSH/Putty 和 AD 帐户访问时(双因素已打开),我收到 Duo 提示,因此可以验证它是否正在连接。我收到“您的密码将在 7 天后过期”消息,因此我在 AD 中更新了密码,现在不再收到“您的密码将在 7 天后过期”消息。这告诉我服务器能够到达 AD 并读取 AD 信息。以下是尝试使用 AD 帐户登录时的文本:
密码或选项 (1-3): 1 使用键盘交互式身份验证。成功。正在让您登录...访问被拒绝
当使用 root 登录时(讽刺的是,root 没有两个因素设置),它会直接进入拒绝访问状态。
我已经清除了 SSSD 缓存,验证了 SSSD 设置,并将 SSSD 设置与我们其他没有问题的服务器之一进行了比较,它们是相同的。
由于 root 也被拒绝 SSH 登录,所以我并不认为这个问题与 AD 有关。
任何帮助将不胜感激。
答案1
在我的脑海中,以下三件事让我在将 CentOS 加入 AD 以及将 sssd 与 ssh 结合使用时感到痛苦:
您是否已
pam_sss.so
在 的密码部分列出/etc/pam.d/password-auth
,或以其他方式调用/etc/pam.d/sshd
? sshd 将使用 PAM 来验证密码,如果 PAM 未配置为与 对话,则将破坏使用AD 身份验证sssd
的能力。ssh
你有一个
/etc/security/access.conf
里面可能有这样一行字的吗-:ALL:ALL
?您可能需要明确允许用户,使用+:USERNAME:ALL
,或者您可以允许通过身份验证的任何人+:ALL:ALL
access.conf 手册页提供了有关条目格式和文件中字段含义的一些有用信息。
在您的域节中
/etc/sssd/sssd.conf
,您是否有用于身份验证的行,例如auth_provider = ad
?
编辑2017-11-02 13:48
/etc/nsswitch.conf
是另一个可能有问题的文件。您需要确认sss
已配置为 passwd、shadow、group、netgroup、automount 和 services 的查找目标:
passwd: files sss
shadow: files sss
group: files sss
<snip>
services: files sss
netgroup: files sss
<snip>
aoutomount: files sss
虽然“成功...访问被拒绝”让我认为它与access.conf有关。就像身份验证正在通过,但随后在其他地方被阻止一样。或者...OP说这是Red Hat。它可能缺少 HBAC 规则。我记得 SSSD 文档中没有提到它们。
我没有可以检查的 RH 服务器,并且我加入域的 CentOS 服务器没有该ipa
命令。
答案2
一个非常相似的场景,但根本原因不同:
使用 sssd 登录(针对 LDAP)通过安慰作品。使用正确的密码通过 sssd 登录SSH失败。大约有 8 秒的延迟,直到被拒绝。
我的解决方案是AllowGroups ssh-login
从/etc/ssh/sshd_config
.该选项限制哪些用户组可以登录服务器。由于我不是该群组的成员,因此不被允许连接。不知道它是怎么到那里的。我从 VM-peeps 中预先配置了我的服务器。也许这是 Debian 10 的默认设置。也许 IT 部门把它放在那里。