web-dev-qa-db-ja.com

Kerberosでキータブを生成した後にパスワードが正しくないのはなぜですか?

私のKerberosシステムでは:

  1. kinit testを実行してpasswdを入力し、成功します。
  2. kadmin.local -q "xst -k test.keytab test"によってキータブを生成します。
  3. kinit testを実行してpasswdを入力しましたが、失敗しました:

    kinit: Password incorrect while getting initial credentials
    
  4. kinit -k -t test.keytab testを実行し、成功します。

これは正常ですか?そうでない場合、考えられる理由は何ですか?

ありがとう。

8
secfree

実行後に、Kerberosのデータベースの属性krbLastPwdChange(a timestamp value)が変更されていることがわかりました。

kadmin.local -q "xst -k test.keytab test"

オプション-norandkeyを追加すると、パスワードを変更せずにキータブが作成されます。

kadmin.local -q "xst -norandkey -k test.keytab test"

kadmin xstに関する詳細なドキュメントが見つかりません。

7
secfree

これは仕様によるものです。 Kerberosではパスワードとキータブの両方を持つことはできません。その理由は、両方が有効になっている場合、誰かがあなたに代わってキータブを引くことができた場合、またはあなたのキータブのコピーを所有していた場合、彼らはあなたになりすまして、あなたはそれを決して知らないでしょう。彼らはkinitを介してTGTを生成することができます。

キータブを引くとパスワードが無効になるため、パスワードでログインしようとするとエラーになります。また、何が起こっているのか正確にわからなくても、パスワードをリセットすると、キータブが無効になります。

4
Chris C

1つの単純な理由のために:

kinitは、クライアントがデータベースで見つからなかったことを示していますよね?デフォルトでは、kinitがキータブで呼び出されると、デフォルトのサーバープリンシパルを使用してTGTを取得します。あなたの場合Host/<hostname>@REALMただし、キータブにはプリンシパルのキーが含まれていますtest@REALM

MIT Kererosメーリングリストに尋ねるまで、私もこの問題を抱えていました。

1
Michael-O