A.2. 调查 kinit 身份验证失败
常规故障排除
- 在 IdM 客户端上,显示
kinit
进程的调试信息:$ KRB5_TRACE=/dev/stdout kinit admin
- 验证:
- 客户端转发记录在服务器和受影响的客户端中都正确:
# host client_fully_qualified_domain_name
- 服务器转发记录在服务器和受影响的客户端中都正确:
# host server_fully_qualified_domain_name
# host server_IP_address
主机 server_IP_address 命令必须返回一个完全限定的主机名,在末尾带有结尾点,例如:server.example.com.
- 查看客户端上的
/etc/hosts
文件,并确保:- 文件中的所有服务器条目都正确
- 在所有服务器条目中,第一个名称是完全限定域名
另请参阅 “/etc/hosts
文件”一节。 - 请确定您满足 第 2.1.5 节 “主机名和 DNS 配置” 中的其他条件。
- 在 IdM 服务器上,确保
krb5kdc
和dirsrv
服务正在运行:# systemctl status krb5kdc # systemctl status dirsrv.target
- 查看 Kerberos 密钥分发中心(KDC)日志:
/var/log/krb5kdc.log
。 - 如果 KDC 在
/etc/krb5.conf
文件中硬编码(该文件明确设置了 KDC 指令并使用dns_lookup_kdc = false
设置),请在每个 master 服务器上使用 ipactl status 命令。使用以下命令检查以 KDC 列出的每台服务器上的 IdM 服务状态:# ipactl status Directory Service: RUNNING krb5kdc Service: RUNNING kadmin Service: RUNNING named Service: RUNNING httpd Service: RUNNING ipa-custodia Service: RUNNING ntpd Service: RUNNING pki-tomcatd Service: RUNNING ipa-otpd Service: RUNNING ipa-dnskeysyncd Service: RUNNING ipa: INFO: The ipactl command was successful
对错误进行故障排除 无法查找域的 KDC
如果在
获取初始凭据时显示 Cannot find KDC for realm "EXAMPLE.COM"
的 kinit
身份验证失败,这表示 KDC 未在服务器上运行,或者客户端已配置 DNS。在这种情况下,请尝试以下步骤:
- 如果在
/etc/krb5.conf
文件中启用了 DNS 发现(dns_lookup_kdc = true
设置),请使用dig
工具检查以下记录是否可以解析:$ dig -t TXT _kerberos.ipa.example.com $ dig -t SRV _kerberos._udp.ipa.example.com $ dig -t SRV _kerberos._tcp.ipa.example.com
在以下示例中,以上dig
命令之一失败并显示此输出:; <<>> DiG 9.11.0-P2-RedHat-9.11.0-6.P2.fc25 <<>> -t SRV _kerberos._tcp.ipa.server.example ;; global options: +cmd ;; connection timed out; no servers could be reached
输出显示named
服务没有在主服务器中运行。 - 如果 DNS 查找失败,请继续 第 A.6 节 “DNS 故障排除” 中的步骤。
相关信息
- 有关各种身份管理日志文件的描述,请参阅 第 C.2 节 “身份管理日志文件和目录”。