在kerberos数据库中找不到Kerberos客户端

时间:2016-12-21 04:44:28

标签: kerberos windows-server-2012

我在W12服务器上运行了以下命令: -

  

setspn -A HTTP / krbspn

     

ktpass / princ HTTP / @ / crypto ALL / ptype   krb5_nt_principal / mapuser krbspn c:\ ticket \ krbspn.keytab -kvno 0   /传递Pa $$ w0rd

和kinit krbspn给出了正确的结果, 但是kinit HTTP /返回: -

  

KrbException:在Kerberos数据库中找不到客户端(6)           在sun.security.krb5.KrbAsRep。(KrbAsRep.java:76)           at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:319)           at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:364)           at sun.security.krb5.internal.tools.Kinit。(Kinit.java:221)           at sun.security.krb5.internal.tools.Kinit.main(Kinit.java:113)引起:KrbException:标识符与期望值不匹配(906)           at sun.security.krb5.internal.KDCRep.init(KDCRep.java:143)           at sun.security.krb5.internal.ASRep.init(ASRep.java:65)           at sun.security.krb5.internal.ASRep。(ASRep.java:60)           在sun.security.krb5.KrbAsRep。(KrbAsRep.java:60)           ......还有4个

我已准备好使用正向和反向DNS进行检查,但它们工作正常。

有趣的事实: -

我在同一台机器上使用了具有相同SPN名称的这些确切命令,一切都运行良好数月。但是2天后我只做了演示: -

  

setspn -D HTTP / krbspn

然后再次执行上述命令,现在它被打破了: - (

感谢任何帮助..

谢谢, NIKHIL

1 个答案:

答案 0 :(得分:1)

  1. setspn -A HTTP / krbspn / 之后和 krbspn 之前有空白。那里肯定没有差距。
  2. ktpass / princ HTTP / @ / crypto ALL 中,必须在 HTTP / 之后和 @ 之前指定某种主机名,最好是完全合格的DNS名称。
  3. kinit HTTP / 本身将始终失败,因为SPN参数不完整,您必须在 HTTP / 之后拥有某种主机名,否则查找KDC赢得&找不到任何东西。
  4. 有关如何运行ktpass命令的示例,请参阅以下链接:Kerberos Keytabs – Explained。示例ktpass命令位于文章的底部。如果您这样做,将正确构建SPN和Keytab,如果您正确地遵循其他所有内容,Kerberos身份验证将成功。