在 Oracle® Solaris 11.2 中管理 Kerberos 和其他验证服务

退出打印视图

更新时间: 2014 年 9 月
 
 

常见的 Kerberos 错误消息 (A-M)

本节按字母顺序 (A-M) 列出了 Kerberos 命令、Kerberos 守护进程、PAM 框架、GSS 接口、NFS 服务和 Kerberos 库的常见错误消息。

Bad lifetime value

Cause: 提供的生命周期值无效或格式不正确。

解决方法: 确保提供的值与 kinit(1) 手册页中的“时间格式”一节相符。

Bad start time value

Cause: 提供的开始时间值无效或格式不正确。

解决方法: 确保提供的值与 kinit(1) 手册页中的“时间格式”一节相符。

Cannot contact any KDC for requested realm

Cause: 请求的领域中没有 KDC 响应。

解决方法: 确保至少可以访问一个 KDC(主从皆可),或 krb5kdc 守护进程正在 KDC 上运行。有关已配置的 KDC (kdc = kdc-name) 的列表,请查看 /etc/krb5/krb5.conf 文件。

Cannot determine realm for host: host is 'hostname'

Cause: Kerberos 无法确定主机的领域名称。

解决方法: 确保存在缺省领域名称,或在 Kerberos 配置文件 (krb5.conf) 中设置了域名映射。

Cannot find a kadmin KDC entry in krb5.conf(4) or DNS Service Location records for realm 'realmname'

Cannot find a kpassword KDC entry in krb5.conf(4) or DNS Service Location records for realm 'realmname'

Cannot find a master KDC entry in krb5.conf(4) or DNS Service Location records for realm 'realmname'

Cannot find any KDC entries in krb5.conf(4) or DNS Service Location records for realm 'realmname'

Cause: krb5.conf 文件或 DNS 服务器记录配置不正确。

解决方法: 确保 Kerberos 配置文件 (/etc/krb5/krb5.conf) 或 KDC 的 DNS 服务器记录已配置正确。

Cannot find address for 'hostname': 'error-string'

Cause: 在 DNS 记录中找不到给定主机名的地址。

解决方法: 修复 DNS 中的主机记录,或更正 DNS 查找进程中的错误。

cannot initialize realm realm-name

Cause: KDC 可能没有存储文件。

解决方法: 确保 KDC 具有存储文件。否则,请使用 kdb5_util 命令创建一个存储文件,然后尝试重新启动 krb5kdc 命令。

Cannot resolve KDC for requested realm

Cause: Kerberos 无法确定领域的任何 KDC。

解决方法: 确保 Kerberos 配置文件 (krb5.conf) 在 realm 部分指定了 KDC。

Cannot resolve network address for KDCs 'hostname' discovered via DNS Service Location records for realm 'realm-name'

Cannot resolve network address for KDCs 'hostname' specified in krb5.conf(4) for realm 'realm-name'

Cause: krb5.conf 文件或 DNS 服务器记录配置不正确。

解决方法: 确保 Kerberos 配置文件 (/etc/krb5/krb5.conf) 或 KDC 的 DNS 服务器记录已正确配置。

Can't open/find Kerberos configuration file

Cause: Kerberos 配置文件 (krb5.conf) 不可用。

解决方法: 确保 krb5.conf 文件位于正确的位置,并具有合适的权限。该文件应可由 root 写入,并可由其他任何用户读取。

Client 'principal' pre-authentication failed

Cause: 对主体的验证失败。

解决方法: 确保用户使用的是正确的口令。

Client or server has a null key

Cause: 主体拥有空密钥。

解决方法: 使用 kadmincpw 命令修改主体,使其拥有非空密钥。

Communication failure with server while initializing kadmin interface

Cause: 为主 KDC 指定的主机未运行 kadmind 守护进程。

解决方法: 确保为主 KDC 指定了正确的主机名。如果指定了正确的主机名,请确保 kadmind 正在指定的主 KDC 上运行。

Credentials cache file permissions incorrect

Cause: 您对凭证高速缓存 (/tmp/krb5cc_uid) 没有相应的读写权限。

解决方法: 请确保您拥有对凭证高速缓存的读写权限。

Credentials cache I/O operation failed XXX

Cause: Kerberos 在向系统的凭证高速缓存 (/tmp/krb5cc_uid) 进行写入时出现问题。

解决方法: 请使用 df 命令确认尚未删除凭证高速缓存,并且设备中还有剩余空间。

Decrypt integrity check failed

Cause: 您的票证可能无效。

解决方法: 验证以下两种情况:

  • 确保您的凭证有效。使用 kdestroy 销毁票证,然后使用 kinit 创建新的票证。

  • 确保目标主机的密钥表文件的服务密钥版本正确。使用 kadmin 查看 Kerberos 数据库中服务主体(例如 host/FQDN-hostname)的密钥版本号。另外,在目标主机上使用 klist -k 命令,以确保该主机具有相同的密钥版本号。

Decrypt integrity check failed for client 'principal' and server 'hostname'

Cause: 您的票证可能无效。

解决方法: 确保您的凭证有效。使用 kdestroy 命令销毁票证,然后使用 kinit 命令创建新票证。

failed to obtain credentials cache

Cause: kadmin 初始化期间,kadmin 尝试获取 admin 主体的凭证时失败。

解决方法: 确保在执行 kadmin 命令时使用正确的主体和口令。

Field is too long for this implementation

Cause: 基于 Kerberos 的应用程序所发送的消息太长。如果传输协议是 UDP,则可能会生成此错误。UDP 的缺省最大消息长度是 65535 字节。此外,对通过 Kerberos 服务发送的协议消息中的单个字段也有限制。

解决方法: 确认您没有在 KDC 服务器的 /etc/krb5/kdc.conf 文件中将传输协议限制为 UDP。

GSS-API (or Kerberos) error

Cause: 此消息是通用的 GSS-API 或 Kerberos 错误消息,可能由几种不同的问题所导致。

解决方法: 检查 /var/krb5/kdc.log 文件,找出发生此错误时记录的更具体的错误消息。

Improper format of Kerberos configuration file

Cause: Kerberos 配置文件包含无效项。

解决方法: 确保 krb5.conf 文件中的所有关系后面都跟有 "=" 符号和值。另外,请确认每个子段中的括号都是成对出现的。

Invalid credential was supplied

Service key not available

Cause: 凭证高速缓存中的服务票证可能不正确。

解决方法: 尝试使用该服务之前,请销毁当前凭证高速缓存并重新运行 kinit 命令。

Invalid flag for file lock mode

Cause: 出现 Kerberos 内部错误。

解决方法: 请报告错误。

Invalid message type specified for encoding

Cause: Kerberos 无法识别基于 Kerberos 的应用程序发送的消息类型。

解决方法: 如果使用的基于 Kerberos 的应用程序是由您的站点或供应商开发的,请确保此应用程序正确使用 Kerberos。

kadmin: Bad encryption type while changing host/FQDN's key

Cause: 在较新的发行版中,基本版本中包括更多的缺省加密类型。客户机请求的加密类型可能不受运行该软件旧版本的 KDC 支持。

解决方法: 在客户机上的 krb5.conf 中设置 permitted_enctypes,使其不包括 aes256 加密类型。将需要对每台新的客户机执行此步骤。

KDC can't fulfill requested option

Cause: KDC 不允许请求的选项。一种可能是正在请求以后生效或可转发的选项,而 KDC 不允许这些选项。另一种可能是请求了 TGT 更新,但没有可更新的 TGT。

解决方法: 确定是请求了 KDC 不允许的选项,还是票证类型不可用。

KDC reply did not match expectation: KDC not found. Probably got an unexpected realm referral

Cause: KDC 回复中未包含所需的主体名称,或者响应中的其他值不正确。

解决方法: 确保您与之通信的 KDC 符合 RFC4120,发送的请求是 Kerberos V5 请求,并且该 KDC 可用。

kdestroy: Could not obtain principal name from cache

Cause: 凭证高速缓存缺失或已损坏。

解决方法: 检查提供的高速缓存位置是否正确。如有必要,使用 kinit 删除 TGT 并获取新的 TGT。

kdestroy: No credentials cache file found while destroying cache

Cause: 凭证高速缓存 (/tmp/krb5c_uid) 缺失或已损坏。

解决方法: 检查提供的高速缓存位置是否正确。如有必要,使用 kinit 删除 TGT 并获取新的 TGT。

kdestroy: TGT expire warning NOT deleted

Cause: 凭证高速缓存缺失或已损坏。

解决方法: 检查提供的高速缓存位置是否正确。如有必要,使用 kinit 删除 TGT 并获取新的 TGT。

Kerberos authentication failed

Cause: Kerberos 口令错误,或该口令可能与 UNIX 口令不同步。

解决方法: 如果口令不同步,则必须指定 Kerberos 口令以完成验证。用户可能会忘记其原始口令。

Key version number is not available for principal principal

Cause: 密钥的密钥版本与应用服务器中的密钥版本不匹配。

解决方法: 使用 klist -k 命令检查应用服务器上的密钥版本。

Key version number for principal in key table is incorrect

Cause: 密钥表文件中主体的密钥版本与 Kerberos 数据库中的版本不同。可能已更改了服务密钥,也可能正在使用旧服务票证。

解决方法: 如果更改了服务密钥(例如,通过使用 kadmin),则需要提取新密钥,并将其存储在正在运行该服务的主机的密钥表文件中。或者,您也可能正在使用具有较旧密钥的旧服务票证。在这种情况下,可能需要运行 kdestroy 命令,然后再次运行 kinit 命令。

kinit: gethostname failed

Cause: 本地网络配置中的错误导致 kinit 失败。

解决方法: 确保主机配置正确。

login: load_modules: can not open module /usr/lib/security/pam_krb5.so.1

Cause: Kerberos PAM 模块缺失,或不是有效的可执行二进制文件。

解决方法: 确保 Kerberos PAM 模块在 /usr/lib/security 目录下,并且是有效的可执行二进制文件。另请确保 login 的 PAM 配置文件包含指向 pam_krb5.so.1 的正确路径。

Looping detected getting initial creds: 'client-principal' requesting ticket 'service-principal'. Max loops is value. Make sure a KDC is available.

Cause: Kerberos 多次尝试获取初始票证,但均失败。

解决方法: 确保至少有一个 KDC 正在响应验证请求。

Master key does not match database

Cause: 装入的数据库转储不是基于包含主密钥的数据库创建的。主密钥位于 /var/krb5/.k5.REALM 中。

解决方法: 确保装入的数据库转储中的主密钥与 /var/krb5/.k5.REALM 中的主密钥匹配。

Matching credential not found

Cause: 未找到与请求匹配的凭证。凭证高速缓存中没有您的请求需要的凭证。

解决方法: 使用 kdestroy 销毁票证,然后使用 kinit 创建新的票证。

Message out of order

Cause: 使用顺序保密机制发送的消息送达时顺序错误。某些消息可能已在传输过程中丢失。

解决方法: 必须重新初始化 Kerberos 会话。

Message stream modified

Cause: 计算出的校验和与消息校验和不匹配。消息在传输过程中可能已被修改,这表明存在安全漏洞。

解决方法: 确保消息在网络中正确发送。由于此消息还可能表明消息在发送过程中被篡改,因此请销毁票证,然后重新初始化正在使用的 Kerberos 服务。