2016-12-21 4 views
1

я бегу следующие команды на сервере W12: -Клиент Kerberos не найден в базе данных Kerberos

Setspn -A HTTP/krbspn

Ktpass/Princ HTTP/@/крипто ALL/PTYPE krb5_nt_principal/mapuser krbspn C: \ билет \ krbspn.keytab -kvno 0 /пасс Pa $$ w0rd

и Kinit krbspn дает правильный результат, однако Kinit HTTP/возврат: -

KrbException: Клиент не найден в базе данных Kerberos (6) в sun.security.krb5.KrbAsRep (KrbAsRep.java:76) на 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.sec urity.krb5.internal.ASRep. (ASRep.java:60) на sun.security.krb5.KrbAsRep. (KrbAsRep.java:60) ... 4 более

Я все готов проверить с вперед и назад DNS, и они работают нормально.

Забавный факт: -

Я использовал эти точные команды с тем же именем SPN на этой же машине, и все работает нормально, в течение нескольких месяцев. Но 2 дня назад только демо я сделал: -

Setspn -D HTTP/krbspn

, а затем сделал вышеперечисленные команды снова, и теперь он сломан :-(

Любая помощь ценится ..

Спасибо, Нихилу

+0

Я думаю, что вижу проблему. Но во-первых, какая версия Java работает на сервере, на котором вы работаете _kinit_? –

+0

@ T-Heron jdk 1.7 51 –

+0

Готовы ли вы попробовать несколько вещей? Если они сработают, мы можем вложить их в ответ. (1) В этом: _setspn -A HTTP/krbspn_ имеет пробел между _/_ и _krbspn_. Там не должно быть пробела. (2) В _ktpass/princ HTTP/@/crypto ALL_ должно быть какое-то имя хоста, указанное после _HTTP/_, но перед _ @ _, желательно полное имя DNS. (3) _kinit HTTP/_ сам по себе будет всегда терпеть неудачу, потому что аргумент SPN является неполным, у вас должно быть какое-то имя хоста, следующего за поиском _HTTP/_ else, в KDC ничего не найдет. Пожалуйста, напишите полную отмененную команду ktpass –

ответ

1
  1. setspn -A HTTP/krbspn имеет промежуток пробела после / и до krbspn. Там не должно быть никакого пробела.
  2. В Ktpass/PRINC HTTP/@/крипто ALL, должно быть какое-то имя хоста, указанного после HTTP/ и перед @, предпочтительно полное имя DNS.
  3. Kinit HTTP/ сам по себе всегда будет терпеть неудачу, потому что аргумент SPN является неполным, вы должны иметь какое-то имя хоста следующий HTTP/ или иначе поисковые операции в KDC не найти ничего.

Пример использования команды ktpass см. По этой ссылке: Kerberos Keytabs – Explained. Пример команды ktpass находится в нижней части статьи. Если вы последуете этому, SPN и Keytab будут правильно построены, и если вы будете следовать за всем остальным, проверка подлинности Kerberos будет успешной.

Смежные вопросы