標準のドキュメントに従って、FreeIPAサーバーとクライアントをそれぞれホスト「SRV」と「CLT」にインストールしました。次に、Web UIを使用してFreeIPAにユーザー「X」を追加しました。 XとしてCLTにSSHしようとすると、'Permission denied, please try again.'
エラー。クライアントで「/ var/log/messages」を確認し、これを見た-'[sssd[krb5_child[3277]]]: Decrypt integrity check failed'
。
パスワードを複数回リセットしましたが、問題は解決しませんでした。それから私はこれらに遭遇しました-
SRVとCLTから「/etc/krb5.keytab」ファイルを削除してから再作成すると問題が解決するようです。
どのSSH認証方法を使用していますか?パスワードを入力していますか、それともKerberosチケットベースの認証(gssapi-with-micまたはgssapi-keyex)を使用しようとしていますか?
「復号化整合性チェックに失敗しました」というメッセージは、2つのソースから送信される可能性があります。間違ったパスワードを入力した場合(パスワードがKDCのプリンシパルのキーと一致しない場合)、それを取得します。また、パスワードが問題なく、サーバーのキータブが古い場合にも表示されます。これは、チケットとパスワードの両方の認証で発生します(パスワードを使用すると、サーバーはkinitを実行した後で、KDCを認証するために独自のホストプリンシパルのチケットを取得します)。
SRVとCLTから「/etc/krb5.keytab」ファイルを削除してから再作成すると問題が解決します。
クライアントのキータブは無関係です。このシナリオの一部ではありません。ここで考えられる問題は、サーバーのkeytabがKDC(Kerberos認証サーバー、またはFreeIPAの一部である「Key Distribution Center」)と同期していないことです。 Kerberosでは、システム内のすべてのID(または「プリンシパル」)がKDCと共有する鍵を持っています。ユーザーのキーはパスワードから生成されます。 sshdのようなソフトウェアサービスのキーはランダムに生成され、キータブ(「キーテーブル」用)と呼ばれるファイルに格納されるため、サービスはそれらにアクセスできます。これは、KDCでSSHプリンシパルのキーが変更されているようですが、keytabが一致するように更新されていません。プリンシパル名はuser @ REALMの形式です。 SSHサービスのプリンシパル名は、Host/hostname @ REALMの形式です。試してください:
$ ipa-getkeytab -s <FreeIPA server> -p Host/<hostname>@REALM -k <keytab file>.
... SSHサービスプリンシパルの現在のキーを新しいキータブに抽出します。 klist -ek <keytab>
を使用して、新旧のキータブの内容を表示できます。キーが一致しない場合は、同じプリンシパルのキーとして、異なるキーバージョン番号(または「kvno」)が表示されます。あなたは次のようなものを見るかもしれません:
# look at the system keytab
$ Sudo klist -ek
KVNO Principal
---- --------------------------------------------------------------------------
1 Host/[email protected] (AES-256 CTS mode with 96-bit SHA-1 HMAC)
# look at the new keytab
$ klist -ek <new keytab>
KVNO Principal
---- --------------------------------------------------------------------------
2 Host/[email protected] (AES-256 CTS mode with 96-bit SHA-1 HMAC)
この問題も解決しました。以前のインストールからのIPAサーバーの古いキーがccacheに含まれていたため、削除/var/lib/sss/db/ccache_*
ファイル