Kerberos认证要求客户端与域控时间偏差不超过5分钟,超时即拒绝票据请求,错误代码如0x80090322;需通过w32tm/chronyd等工具分层校准客户端、域控及PDC时间源并验证偏移量。
kerberos 认证对时间极其敏感,客户端与域控时间偏差超过 5 分钟就会直接拒绝票据请求,表现为登录失败、提示“凭据无效”“账户限制”或错误代码 0x80090322(sec_e_time_skew)。这不是密码或网络问题,而是时间戳校验失败。修复关键在于快速定位偏移来源,并分层校准。
先确认当前时间偏差值
在出问题的客户端上,以管理员身份运行:
- w32tm /query /status —— 查看 Source(应为域控 FQDN)和 Skew(单位毫秒;>300000 即超 5 分钟)
- w32tm /stripchart /computer:dc01.example.com /dataonly /samples:5 —— 实时观测与指定域控的时间差
- 若返回“没有可用的时间数据”,说明客户端根本没连上域控的时间服务,需检查网络和防火墙
Windows 客户端强制同步并验证
不要等后台服务自动重试,手动触发并确保生效:
- 启动时间服务:net start w32time
- 立即强制同步:w32tm /resync /force
- 若仍失败,检查是否被组策略锁定为错误源,或注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval 被设为过大(如 86400),导致同步频率过低
- 同步后再次运行 w32tm /query /status,确认 Skew 降到 1000ms 以内
域控自身必须可信
客户端再准,若域控时间漂移,整个域都会失效。重点检查 PDC Emulator 角色持有者:
- 运行 w32tm /query /configuration,确认其 AnnounceFlags ≥ 5,且 Type 为 NTP(不是 NT5DS)
- PDC 必须指向可靠外部源,例如:w32tm /config /manualpeerlist:"ntp.ntsc.ac.cn time.windows.com" /syncfromflags:manual /reliable:yes /update
- 重启服务:net stop w32time && net start w32time,再执行 w32tm /resync
- 用 repadmin /showrepl 确保其他域控已从 PDC 成功同步时间信息
Linux 客户端(SSSD/Kerberos)不能只靠 SSSD
SSSD 不处理时间同步,系统时间必须独立准确:
- 优先使用 chronyd:sudo chronyc sources -v 确认已连接到域控或同一 NTP 源
- 若时间偏差大,运行:sudo chronyc makestep(允许大步长校正)
- 验证 Kerberos 时间一致性:kinit user@EXAMPLE.COM && klist -v,比对输出中的 Valid starting 时间与 date 命令结果
- 避免混用 ntpdate(已弃用)或配置多个冲突 NTP 源

















