在我的Kerberos系统中:
kinit test
并输入passwd
,然后成功。kadmin.local -q "xst -k test.keytab test"
生成密钥表。运行kinit test
并输入passwd
,失败:
kinit: Password incorrect while getting initial credentials
运行kinit -k -t test.keytab test
,成功。
这是正常的吗?如果没有,可能的原因是什么?
感谢。
答案 0 :(得分:7)
我在运行后发现kerberos数据库中的属性kadmin.local -q "xst -k test.keytab test"
发生了变化:
-norandkey
添加选项kadmin.local -q "xst -norandkey -k test.keytab test"
只会创建密钥表而不更改密码:
kadmin xst
我找不到有关 IAdvanceBus = bus.Advanced.Consume(queueName, registration =>
{
registration.Add<MESSAGE1>((message, info) => { ProcessMessage(MESSAGE1) })
registration.Add<MESSAGE2>((message, info) => { ProcessMessage(MESSAGE2) })
registration.Add<MESSAGE3>((message, info) => { ProcessMessage(MESSAGE3) })
registration.Add<MESSAGE4>((message, info) => { ProcessMessage(MESSAGE4) })
registration.Add<MESSAGE5>((message, info) => { ProcessMessage(MESSAGE5) });
});
的详细资料。
答案 1 :(得分:4)
这是设计的。您不能在Kerberos中同时拥有密码和密钥表。原因是如果两者都被启用,如果有人能够代表您拉一个密钥表或者拥有您的密钥表的副本,那么他们可能会伪装成您而您永远不会知道它。他们可以通过kinit生成TGT。
通过拉取密钥表,密码无效,因此如果您尝试使用密码登录,则会出现错误。即使您不确切知道发生了什么,如果您重置密码,也会使密钥表无效。
答案 2 :(得分:1)
原因很简单:
kinit
告诉您在数据库中找不到客户端,对吧?默认情况下,当使用keytab调用kinit
时,它使用默认服务器pricipal来获取TGT。在您的情况下host/<hostname>@REALM
,但您的keytab包含主体test@REALM
的密钥。
在我问过MIT Kereros邮件列表之前,我也遇到过这个问题。