必须安装krb5-user并严格配置/etc/krb5.conf:default_realm与[realms]下大写域名须完全一致,kdc主机名需可解析,时间同步后执行kinit -V验证“Authenticated to Kerberos v5”成功标志。

您需要在统信UOS上对接企业已有的Kerberos域控(如MIT KDC或Windows AD的Kerberos服务),实现单点登录与集中身份鉴权,但系统默认未预装Kerberos客户端组件且KDC realm配置错误会导致kinit命令报“Cannot contact any KDC”或“Preauthentication failed”。
安装并验证Kerberos基础工具
执行sudo apt update && sudo apt install -y krb5-user krb5-config,安装过程中会弹出realm配置对话框——此时【必须手动输入大写的域名,如EXAMPLE.COM,不能小写或带点号后缀】;若跳过该步或输错,/etc/krb5.conf将缺失[realms]段,后续所有认证均失败。
安装完成后运行klist,输出应为“klist: No credentials cache found”,说明客户端已就位但尚未获取票据——这是正常初始状态。
手动修正Kerberos主配置文件
编辑sudo nano /etc/krb5.conf,删除安装时自动生成的全部内容,严格按以下结构重写(注意大小写、缩进和空行):
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
[realms]
EXAMPLE.COM = {
kdc = kdc.example.com
admin_server = kdc.example.com
default_domain = example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
其中kdc.example.com必须能被本机解析:执行ping kdc.example.com确认通达,若失败需先在/etc/hosts中添加IP映射;【default_realm值必须与[realms]下大写域名完全一致,否则kinit时提示“Configuration file does not specify default realm”】。
测试Kerberos票据获取与验证
第一步:执行kinit username@EXAMPLE.COM,输入对应域账号密码;成功后无任何输出,直接返回shell提示符。
第二步:立即运行klist,应显示有效起止时间、票据缓存路径及principal名称;若显示“Ticket expired”说明时间不同步,需用sudo timedatectl set-ntp true强制同步NTP。
第三步:执行kdestroy清除票据,再运行kinit -V username@EXAMPLE.COM(-V开启详细日志),观察输出末尾是否出现“Authenticated to Kerberos v5”——这是唯一可信的成功标志。
启用PAM层Kerberos认证集成
方法一:使用pam-auth-update图形向导
执行sudo pam-auth-update,在弹出的多选列表中勾选“Kerberos authentication”,按Tab切换到
方法二:手动注入PAM规则(推荐用于生产环境)
执行echo "auth [success=done default=ignore] pam_krb5.so minimum_uid=1000" | sudo tee -a /etc/pam.d/common-auth,此行必须置于common-auth文件末尾,否则会被前面的pam_deny.so覆盖;【插入位置错误将导致所有本地用户无法登录】。
完成配置后,重启lightdm服务:sudo systemctl restart lightdm。新会话中即可使用域账号密码登录桌面。











