即使使用正确的密码,所有用户的 SSH 登录都会失败

即使使用正确的密码,所有用户的 SSH 登录都会失败

因此,我有一个已加入广告的 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 结合使用时感到痛苦:

  1. 您是否已pam_sss.so在 的密码部分列出/etc/pam.d/password-auth,或以其他方式调用/etc/pam.d/sshd? sshd 将使用 PAM 来验证密码,如果 PAM 未配置为与 对话,则将破坏使用AD 身份验证sssd的能力。ssh

  2. 你有一个/etc/security/access.conf里面可能有这样一行字的吗-:ALL:ALL?您可能需要明确允许用户,使用+:USERNAME:ALL,或者您可以允许通过身份验证的任何人+:ALL:ALL

    access.conf 手册页提供了有关条目格式和文件中字段含义的一些有用信息。

  3. 在您的域节中/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 部门把它放在那里。

相关内容