我按照 MIT Kerberos 5 说明更新了我的 Kerberos 5 服务器的主密钥。我重新启动了 kdc 和 kadmind 服务并使用 krb5-prop 将更改推送到其他服务器。
现在我无法从任何服务器连接到 kadmin,包括管理服务器:
$kadmin
Authenticating as principal jacob/[email protected] with password.
Password for jacob/[email protected]:
kadmin: GSS-API (or Kerberos) error while initializing kadmin interface
从我的搜索中,我发现造成这种情况的一个常见原因是时间同步问题,但机器在一秒钟内匹配,即使从运行 kadmind 的服务器也失败。
我不知道如何解决这个问题。我的 kadmind 版本没有我发现的任何类型的调试参数或详细的日志记录级别。我试过用 -nofork 从命令行运行它,那里很安静。
密码被接受。我可以将 kinit 作为目标原则,如果我输入的密码错误,它会告诉我。
kadmin: Incorrect password while initializing kadmin interface
如果 kadmind 服务没有运行,它也会给出不同的错误。
kadmin: Communication failure with server while initializing kadmin interface
在更新主密码之前我没有测试 kadmin,但是我最近使用它并且没有进行其他配置更改。我试过检查我的密钥版本号(kvno),它们似乎是正确的。
还有什么可能导致这种情况?我还能在哪里检查?如何调试 kadmind?
Debian 8,krb5-admin-server 1.12.1。
我遇到了同样的问题(相同的 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/[email protected]
检查您是否在服务器上打开了 kdc 端口(
749
默认情况下,两者都是tcp
和udp
)并且客户端可以连接到它。这对我来说是导致kadmin: Communication failure with server while initializing kadmin interface
错误的问题。supported_enctypes
从 krb5 1.17 升级到 1.18 后,我遇到了这个错误,对我来说,答案最终是我需要在我的 中注释掉kdc.conf
,每个:https ://forum.ubuntuusers.de/topic/krb5-admin-server-startet -nicht-mehr/#post-9160670(德语)。我认为这与在 krb5 1.18 中删除单 DES 有关。我的配置来自以前的默认设置并一直适用于 1.17:
https://web.mit.edu/kerberos/krb5-latest/doc/admin/advanced/retiring-des.html
我打赌我可能刚刚从该列表中删除了单 DES 条目,但在这种情况下,最好只使用使用更强 AES 加密的较新默认值。
所以在某些情况下,这个错误实际上可能意味着多余
kdc.conf
的参数而不是缺少的参数。如果它可以告诉您哪些参数有问题而不是让您猜测,那就太好了。