You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7下SSSD偶发AD账号登录失败求助(含KDC加密错误)

从你提供的SSSD状态日志和krb5.conf配置来看,这个偶尔出现的AD凭证登录失败问题,核心原因是Kerberos客户端(SSSD依赖)和AD域控(KDC)之间的加密类型不匹配,加上偶尔的预认证协商故障,具体拆解如下:

问题根源分析

  • 日志里的KDC has no support for encryption type明确说明:SSSD在请求Kerberos票据时,使用了AD域控未启用的加密算法。AD默认支持的加密类型通常是AES-256、AES-128、RC4-HMAC,如果你没在krb5.conf里指定加密类型优先级,客户端可能会尝试一些AD未开启的算法(比如较新的AES-GCM系列,或过时的DES变体),偶尔协商失败就会触发登录问题。
  • Preauthentication failed错误则可能和AD账号的预认证设置、域控的预认证策略波动有关——比如某些场景下,客户端发送的预认证数据不符合域控要求,导致票据请求被拒绝。
  • 至于su切换普通账号后登录恢复,大概率是因为su操作触发了SSSD重新同步本地缓存的AD凭据,或者强制使用了缓存中的有效票据,绕过了当时的Kerberos协商故障。

调试与解决建议

1. 强制Kerberos使用AD兼容的加密类型

修改/etc/krb5.conf,在[libdefaults]段添加加密类型的强制配置,确保只使用AD支持的算法:

[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = CO.LOCAL
# 新增:指定AD兼容的加密类型优先级
default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac

保存后重启SSSD并清理缓存:

systemctl restart sssd
sss_cache -E

2. 优化SSSD的Kerberos配置

编辑/etc/sssd/sssd.conf(确保文件权限为600),在[domain/co.local]段添加以下配置增强协商稳定性:

[domain/co.local]
# 确保使用加密票据
krb5_encrypted_tickets = true
# 启用FAST预认证,提升兼容性与安全性
krb5_use_fast = safe
# 指定AD支持的预认证类型
krb5_preauth_types = encrypted-challenge, rsa-sha2-512, rsa-sha2-256
# 可选:缩短缓存超时,避免旧凭据干扰
cache_credentials = true
entry_cache_timeout = 3600

修改后重启SSSD服务。

3. 启用SSSD详细调试日志追踪偶发故障

因为问题是间歇性的,需要开启高等级日志捕获故障时的完整过程:
在/etc/sssd/sssd.conf的全局段和域段都设置调试级别:

[sssd]
services = nss, pam, ssh
config_file_version = 2
domains = co.local
debug_level = 9

[domain/co.local]
# 保留原有配置,新增或修改调试级别
debug_level = 9

重启SSSD后,日志会输出到/var/log/sssd/目录(比如sssd_co.local.log、sssd_pam.log)。下次出现登录失败时,立即查看这些日志,就能定位到具体是哪个加密类型被拒绝,或预认证过程中哪一步出了问题。

4. 检查AD端配置(若有权限)

  • 确认AD域控的Kerberos加密策略,确保AES-256、AES-128、RC4-HMAC已启用(AD默认开启,但可能被修改)。
  • 排查出现问题的AD账号,确保未勾选“不要求Kerberos预认证”选项(在AD用户属性的「账户」标签页中)。

5. 排查网络稳定性

偶尔的网络丢包/延迟也可能导致Kerberos协商失败,可以持续监控客户端到AD域控的连通性,比如测试KDC服务端口(UDP/TCP 88)的连通性,排查是否有间歇性丢包。

内容的提问来源于stack exchange,提问作者lampShadesDrifter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 09:57:46