Kerberos常见报错汇总

简介: 汇总了Kerberos在配置和使用过程中可能遇到的常见错误,包括密码不匹配、配置文件参数缺失、数据库文件不存在、日志文件路径错误等问题,并为每个问题提供了详细的错误复现、原因分析以及解决方案。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.kdb5_util: Password mismatch while reading master key from keyboard

1>.错误复现

2>.错误原因分析

  在初始化Kerberos数据库时需要输入密码,2次密码输入不一致就会导致该错误。

3>.解决方案

  重新执行"kdb5_util -r YINZHENGJIE.COM create -s"指令,输入2次相同的密码即可。

二.kdb5_util: Required parameters in kdc.conf missing while initializing kerberos admin interface

1>.错误复现

2>.错误原因分析

  一般情况下出现在配置文件(kdc.conf)中的"supported_enctypes"的某个加密类型不可用。

3>.解决方案

  下面我针对"supported_enctypes"做了修改,大家可以做个对比。使用修改后的参数问题得到解决,之所以贴出来修改后的是为了提供一个参考。  

  修改前:
    supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal

  修改后:
    supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal

三.kadmin.local: Required parameters in kdc.conf missing while initializing kadmin.local interface

1>.错误复现

2>.错误原因分析

  一般情况下出现在配置文件(kdc.conf)中的"supported_enctypes"的某个加密类型不可用。

3>.解决方案

  参考案例二。

四.kadmin.local: Cannot open DB2 database '/yinzhengjie/softwares/kerberos/data/principal': No such file or directory while initializing kadmin.local interface

1>.错误复现

2>.错误原因分析

  报错很明显提示咱们找不到DB数据库相关信息。一般情况下是我们在安装Kerberos时没有做数据库初始化操作。

3>.解决方案

  注意观察KDC配置文件("kdc.conf")的"database_name"属性。当我们对Kerberos数据库做了初始化操作时,对生成对应的文件哟~

  初始化Kerberos数据库的命令如下:
    kdb5_util -r YINZHENGJIE.COM create -s

五.(Error): WARNING! Cannot find dictionary file /yinzhengjie/softwares/kerberos/data/dict/words, continuing without one.

1>.错误复现

2>.错误原因分析

  根据日志的报错信息可判断,是因为没有对应的文件(由kdc.conf配置文件的"dict_file"标签指定路径)导致的报错信息,但这并不影响您启动程序。

3>.解决方案

解决方法很简单,创建响应的文件即可,操作案例如下所示:
[root@kdc.yinzhengjie.com ~]# mkdir -pv /yinzhengjie/softwares/kerberos/data/dict
mkdir: created directory ‘/yinzhengjie/softwares/kerberos/data/dict’
[root@kdc.yinzhengjie.com ~]# 
[root@kdc.yinzhengjie.com ~]# vim /yinzhengjie/softwares/kerberos/data/dict/words
[root@kdc.yinzhengjie.com ~]# 
[root@kdc.yinzhengjie.com ~]# cat /yinzhengjie/softwares/kerberos/data/dict/words
123456
[root@kdc.yinzhengjie.com ~]#

六.Couldn't open log file ${KERBEROS_HOME}/logs/kadmind.log: No such file or directory

1>.错误复现

2>.错误原因分析

  一般是krb5.conf配置文件中的[logging]的"admin_server"标签对应的路径并不存在,建议写绝对路径,若写自定义的Linux变量可能不会被识别哟!

3>.解决方案

指定绝对路径即可,下面是我修改krb5.conf配置文件的过程。

修改前:
[logging]
 default = FILE:${KERBEROS_HOME}/logs/krb5libs.log
 kdc = FILE:${KERBEROS_HOME}/logs/krb5kdc.log
 admin_server = FILE:${KERBEROS_HOME}/logs/kadmind.log


修改后:
[logging]
 default = FILE:/yinzhengjie/softwares/kerberos/logs/krb5libs.log
 kdc = FILE:/yinzhengjie/softwares/kerberos/logs/krb5kdc.log
 admin_server = FILE:/yinzhengjie/softwares/kerberos/logs/kadmind.log

七.kdb5_util: Cannot open DB2 database '/yinzhengjie/softwares/kerberos/data/yinzhengjie-principal': File exists while creating database '/yinzhengjie/softwares/kerberos/data/yinzhengjie-principal'

1>.错误复现

2>.错误原因分析

  数据库已经存在啦,因此会出现上图所示的错误。

  温馨提示:  
    Kerberos的数据库初始化一次即可,无需初始化第二次,若你的管理员密码忘记了那就得重新初始化了,但这意味之前的数据必须全部删除。生产环境中要慎重啊!

3>.解决方案

  方案一:
    删除已存在的数据库文件,重新执行初始化操作,这意味着之前的所有数据全部丢失!生产环境要慎重哟,尽量避免不要这样干!

  方案二:
    放弃重新初始化操作,因为已经存在数据库文件了,直接使用现有数据库即可,除非你不得不重新初始化操作(比如忘记了KDC管理员的密码)!  

  温馨提示:  
    初始化的数据库密码一定要记住哈,这样可以给你减少不必要的麻烦!

八.kadmind: Cannot allocate memory while initializing network, aborting

1>.错误复现

2>.错误原因分析

3>.解决方案

九.官方故障排除案例

  博主推荐阅读:
    https://web.mit.edu/kerberos/krb5-latest/doc/admin/troubleshoot.html
目录
相关文章
|
11月前
|
SQL Java Linux
聊聊 kerberos 的 kinit 命令和 ccache 机制
聊聊 kerberos 的 kinit 命令和 ccache 机制
|
存储 分布式计算 安全
CDH7.1.1启用Kerberos
CDH7.1.1启用Kerberos
119 0
|
消息中间件 分布式计算 安全
如何禁用Kerberos
如何禁用Kerberos
269 0
|
分布式计算 Hadoop 网络安全
|
分布式计算 安全 Hadoop
Kerberos 客户端配置|学习笔记
快速学习 Kerberos 客户端配置
402 0
|
安全 Oracle Java
Can't get Kerberos realm
1. Can't get Kerberos realm 原因分析: 原始代码为: org.apache.hadoop.security.UserGroupInformation.setConfiguration(conf) sun.
5010 0
|
Java 分布式数据库 Apache
|
SQL 分布式计算 Java
|
SQL Java 数据库连接