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

Ubuntu 22.04 Kerberos认证Active Directory时出现KDC_ERR_S_PRINCIPAL_UNKNOWN错误

解决Ubuntu 22.04 Kerberos认证AD域时的KDC_ERR_S_PRINCIPAL_UNKNOWN错误

问题根源

KDC_ERR_S_PRINCIPAL_UNKNOWN本质是域控制器(DC)找不到这台Ubuntu机器对应的Kerberos服务主体。结合DC能ping通Ubuntu但nslookup解析失败的情况,核心问题是DC的DNS系统中没有该Ubuntu机器的正向/反向解析记录——Kerberos严重依赖DNS关联主机名与服务主体,缺失记录必然导致认证失败。

分步解决步骤

1. 确认Ubuntu的DNS配置

Ubuntu必须使用域控制器作为DNS服务器才能同步相关记录,查看当前配置:

cat /etc/resolv.conf

如果nameserver不是DC的IP,修改systemd-resolved配置(Ubuntu 22.04默认用这个):

sudo nano /etc/systemd/resolved.conf
# 将DNS字段改为DC的IP,例如:DNS=192.168.1.10
sudo systemctl restart systemd-resolved

2. 在DC手动添加DNS记录

直接登录域控制器,在AD DNS管理器中添加两条记录:

  • 正向解析:将Ubuntu主机名(如ubuntu-host)绑定到它的IP地址
  • 反向解析:将Ubuntu的IP地址绑定回完整主机名(如ubuntu-host.yourdomain.com)

3. 刷新Kerberos缓存并重获票据

先清除旧的无效缓存:

sudo kdestroy

重新向域申请票据:

kinit your-username@YOURDOMAIN.COM

用klist命令验证是否成功获取有效票据。

4. 检查Ubuntu主机名是否为FQDN

Kerberos要求主机使用完全限定域名(FQDN),查看当前主机名:

hostname -f

如果输出不是ubuntu-host.yourdomain.com格式,修改主机名:

sudo hostnamectl set-hostname ubuntu-host.yourdomain.com

修改后重启主机生效。

5. 验证DNS双向解析

回到DC上执行nslookup,确认双向解析正常:

nslookup ubuntu-host.yourdomain.com
nslookup 192.168.1.20  # 替换为Ubuntu的实际IP

额外排查点

  • 检查/etc/krb5.conf配置,确保realm设置正确:
[libdefaults]
    default_realm = YOURDOMAIN.COM
[domain_realm]
    .yourdomain.com = YOURDOMAIN.COM
    yourdomain.com = YOURDOMAIN.COM
  • 用realm list命令确认Ubuntu已正确加入域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:16:15