我有一个简单的 MS ADDS 多域林设置,带有一个父域和一个子域。我使用这个官方文档成功地将 RHEL 8 服务器加入了子域。所有操作系统都已通过使用尽可能多的默认值进行设置。我可以通过使用子域的 AD 帐户成功 SSH 到 RHEL 服务器。但是当我尝试使用父域的帐户时,登录失败。我一提交父域的用户名,就journalctl
报如下错误:
sssd_be[...]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (KDC has no support for encryption type)
我检查了每个域的 DC,可以确认所有 DC 都支持相同的三种默认加密类型(存储在msDS-SupportedEncryptionTypes
每个 DC 计算机帐户的属性中):
- RC4_HMAC_MD5
- AES128_CTS_HMAC_SHA1_96
- AES256_CTS_HMAC_SHA1_96
我还确认 RHEL 8 提供了合适的加密类型 ( /etc/crypto-policies/back-ends/krb5.config
):
[libdefaults]
permitted_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 camellia256-cts-cmac aes128-cts-hmac-sha1-96 aes128-cts-hmac-sha256-128 camellia128-cts-cmac
因此,应该有两个匹配项:aes128-cts-hmac-sha1-96
和aes256-cts-hmac-sha1-96
。正如我已经说过的,它在子域中运行良好。那么,为什么没有适合父域的加密类型呢?
AD 信任的属性包括一个名为“其他域支持 Kerberos AES 加密”的属性。默认情况下,未选中此选项。在这种情况下,这会导致父域无法为 Kerberos 提供 AES 加密类型。因此,唯一的选择是
RC4_HMAC_MD5
。在 RHEL 8 上,RC4 加密已被默认弃用和禁用。因此,在 RHEL 和父域之间确实没有可用于商定的加密类型。在选中“其他域支持 Kerberos AES 加密”选项后,身份验证也适用于父域。
如果您想以编程方式设置此设置,请执行此操作。