从管理服务器初始化 kadmin 接口时出现 Kerberos 错误

jla*_*jla 2 linux debian kerberos mitkerberos

按照 MIT Kerberos 5 说明更新了我的 Kerberos 5 服务器的主密钥。我重新启动了 kdc 和 kadmind 服务,并使用 krb5-prop 将更改推送到其他服务器。

现在我无法从任何服务器(包括管理服务器)连接 kadmin:

$kadmin
Authenticating as principal jacob/admin@THE.REALM with password.
Password for jacob/admin@THE.REALM:
kadmin: GSS-API (or Kerberos) error while initializing kadmin interface
Run Code Online (Sandbox Code Playgroud)

通过我的搜索,我发现造成这种情况的一个常见原因是时间同步问题,但机器在一秒钟内匹配,即使从运行 kadmind 的服务器也失败。

我不知道如何解决这个问题。我的 kadmind 版本没有任何类型的调试参数或我发现的详细日志记录级别。我试过用 -nofork 从命令行运行它,那里很安静。

密码被接受。我可以将 kinit 作为目标原则,如果我输入的密码错误,它会告诉我。

kadmin: Incorrect password while initializing kadmin interface
Run Code Online (Sandbox Code Playgroud)

如果 kadmind 服务没有运行,它也会给出不同的错误。

kadmin: Communication failure with server while initializing kadmin interface
Run Code Online (Sandbox Code Playgroud)

我在更新主密码之前没有测试 kadmin,但我最近使用了它,并且没有进行其他配置更改。我试过检查我的密钥版本号 (kvno),它们似乎是正确的。

还有什么可能导致这种情况?我还能在哪里检查?如何调试 kadmind?

Debian 8,krb5-admin-server 1.12.1。

小智 5

我遇到了同样的问题(相同的 Debian 和 krb5-admin-server 版本)。

和你一样,当我从 kerberos 管理服务器本身运行 kadmin 时它没有工作,这排除了时间差异(我什至安装了 NTP 以确保 - 这对问题没有影响)。

就我而言,问题原来是熵的问题。Kadmin 非常安全,需要大量的熵来生成会话密钥。

我的设置(测试设置)正在虚拟机上运行。我会发现我根本无法使用 kadmin,但大约半小时后,kadmin 会“神秘地”开始工作。

您可以在以下位置检查系统熵:

/proc/sys/kernel/random/entropy_avail

为了解决这个问题,我使用了主机的熵 (/dev/random),并使用 rng-tools 使 kadmin 可以使用它。

顺便说一句,对于一般的 kerberos 故障排除,您可以查看:

https://web.mit.edu/kerberos/krb5-latest/doc/admin/troubleshoot.html

诸如以下内容会将跟踪日志发送到标准输出,让您可以详细了解正在发生的事情:

env KRB5_TRACE=/dev/stdout kadmin -p johndoe/admin@KRB.TEST.NET