在 kerberos 数据库中找不到 Kerberos 客户端
Kerberos Client not found in kerberos database
我已经 运行 在 W12 服务器上执行了以下命令 :-
setspn -A HTTP/ krbspn
ktpass /princ HTTP/@ /crypto ALL /ptype
krb5_nt_principal /mapuser krbspn c:\ticket\krbspn.keytab -kvno 0
/pass Pa$$w0rd
并且 kinit krbspn 给出了正确的结果,
然而 kinit HTTP/ returns :-
KrbException: Client not found in Kerberos database (6)
at 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) Caused by: KrbException: Identifier doesn't match expected value (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)
at sun.security.krb5.KrbAsRep.(KrbAsRep.java:60)
... 4 more
我已经准备好检查正向和反向 DNS,它们工作正常。
有趣的事实:-
我在同一台机器上使用了具有相同 SPN 名称的这些确切命令,几个月来一切正常。但是 2 天前我做了演示:-
setspn -D HTTP/ krbspn
然后又做了上面的命令,现在坏了:-(
感谢任何帮助..
谢谢,
尼克尔
- setspn -A HTTP/ krbspn 在 / 之后和 krbspn[=25= 之前有一个空格间隙].那里一定不能有空隙。
- 在ktpass /princ HTTP/@/crypto ALL中,必须在HTTP/之后和[之前指定某种主机名=13=]@,最好是完全限定的 DNS 名称。
- kinit HTTP/ 本身总是会失败,因为 SPN 参数不完整,你必须在 HTTP/[=25= 之后有某种主机名] 否则在 KDC 中查找将找不到任何内容。
有关如何 运行 ktpass 命令的示例,请参阅此 link:Kerberos Keytabs – Explained。示例 ktpass 命令位于文章底部。如果您按照此操作,将正确构建 SPN 和 Keytab,如果您按照其他所有内容正确操作,Kerberos 身份验证将成功。
我已经 运行 在 W12 服务器上执行了以下命令 :-
setspn -A HTTP/ krbspn
ktpass /princ HTTP/@ /crypto ALL /ptype krb5_nt_principal /mapuser krbspn c:\ticket\krbspn.keytab -kvno 0 /pass Pa$$w0rd
并且 kinit krbspn 给出了正确的结果, 然而 kinit HTTP/ returns :-
KrbException: Client not found in Kerberos database (6) at 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) Caused by: KrbException: Identifier doesn't match expected value (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) at sun.security.krb5.KrbAsRep.(KrbAsRep.java:60) ... 4 more
我已经准备好检查正向和反向 DNS,它们工作正常。
有趣的事实:-
我在同一台机器上使用了具有相同 SPN 名称的这些确切命令,几个月来一切正常。但是 2 天前我做了演示:-
setspn -D HTTP/ krbspn
然后又做了上面的命令,现在坏了:-(
感谢任何帮助..
谢谢, 尼克尔
- setspn -A HTTP/ krbspn 在 / 之后和 krbspn[=25= 之前有一个空格间隙].那里一定不能有空隙。
- 在ktpass /princ HTTP/@/crypto ALL中,必须在HTTP/之后和[之前指定某种主机名=13=]@,最好是完全限定的 DNS 名称。
- kinit HTTP/ 本身总是会失败,因为 SPN 参数不完整,你必须在 HTTP/[=25= 之后有某种主机名] 否则在 KDC 中查找将找不到任何内容。
有关如何 运行 ktpass 命令的示例,请参阅此 link:Kerberos Keytabs – Explained。示例 ktpass 命令位于文章底部。如果您按照此操作,将正确构建 SPN 和 Keytab,如果您按照其他所有内容正确操作,Kerberos 身份验证将成功。