私の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
を実行し、成功します。
これは正常ですか?そうでない場合、考えられる理由は何ですか?
ありがとう。
実行後に、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
に関する詳細なドキュメントが見つかりません。
これは仕様によるものです。 Kerberosではパスワードとキータブの両方を持つことはできません。その理由は、両方が有効になっている場合、誰かがあなたに代わってキータブを引くことができた場合、またはあなたのキータブのコピーを所有していた場合、彼らはあなたになりすまして、あなたはそれを決して知らないでしょう。彼らはkinitを介してTGTを生成することができます。
キータブを引くとパスワードが無効になるため、パスワードでログインしようとするとエラーになります。また、何が起こっているのか正確にわからなくても、パスワードをリセットすると、キータブが無効になります。
1つの単純な理由のために:
kinit
は、クライアントがデータベースで見つからなかったことを示していますよね?デフォルトでは、kinit
がキータブで呼び出されると、デフォルトのサーバープリンシパルを使用してTGTを取得します。あなたの場合Host/<hostname>@REALM
ただし、キータブにはプリンシパルのキーが含まれていますtest@REALM
。
MIT Kererosメーリングリストに尋ねるまで、私もこの問題を抱えていました。