GNU/Linux >> Linux の 問題 >  >> Linux

Kerberos は SSH とどのように連携しますか?

最初のログイン:

  • L はユーザー名と SSH 認証リクエストを S1 に送信します
  • S1 は利用可能な SSH 認証メカニズムを返します。そのうちの 1 つは「パスワード」です
  • L は「パスワード」を選択し、平文のパスワードを S1 に送信します
  • S1 はユーザー名とパスワードを PAM スタックに渡します
  • S1 では、PAM (通常は pam_krb5 または pam_sss ) は、Kerberos KDC から TGT (チケット許可チケット) を要求します。 <オール>
  • S1 は TGT を取得します。
    • 古いスタイル (事前認証なし):S1 は AS-REQ を送信し、TGT を含む AS-REP を受信します。
    • 新しいスタイル (事前認証あり):S1 はパスワードを使用して現在のタイムスタンプを暗号化し、AS-REQ に添付します。サーバーはタイムスタンプを復号化し、許容される時間のずれの範囲内であることを確認します。復号化に失敗すると、パスワードはすぐに拒否されます。それ以外の場合は、AS-REP で TGT が返されます。
  • S1 は、パスワードから生成されたキーを使用して TGT の復号化を試みます。復号化に成功すると、パスワードは正しいものとして受け入れられます。
  • TGT は、新しく作成された資格情報キャッシュに保存されます。 ( $KRB5CCNAME を調べることができます 環境変数で ccache を見つけるか、klist を使用します。 その内容を一覧表示します。)
  • S1 は PAM を使用して認証チェック (構成に依存) を実行し、セッションを開きます。
    • If pam_krb5 承認段階で呼び出され、 ~/.k5login かどうかをチェックします 存在します。その場合、クライアントの Kerberos プリンシパルをリストする必要があります。それ以外の場合、許可される唯一のプリンシパルは username@DEFAULT-REALM です .

2 回目のログイン:

  • S1 はユーザー名と SSH 認証リクエストを S2 に送信します
  • S2 は利用可能な認証メカニズムを返します。そのうちの 1 つは「gssapi-with-mic」です
  • S1 は host/s2.example.com@EXAMPLE.COM のチケットをリクエストします 、TGT を含む TGS-REQ を KDC に送信し、そこからサービス チケットを含む TGS-REP を受信します。
  • S1 は「AP-REQ」(認証要求)を生成し、S2 に送信します。
  • S2 はリクエストの復号化を試みます。成功すると、認証が行われます。 (PAM は認証に使用されません。)
    • LDAP などの他のプロトコルでは、リクエストに含まれていた「セッション キー」を使用して、以降のデータ転送を暗号化することを選択できます。ただし、SSH はすでに独自の暗号化レイヤーをネゴシエートしています。
  • 認証が成功すると、S2 は PAM を使用して認証チェックを実行し、S1 と同じようにセッションを開きます。
  • 資格情報の転送が有効で、TGT に「転送可能」フラグが設定されている場合、S1 はユーザーの TGT のコピー (「転送済み」フラグが設定されている) を要求し、それを S2 に送信して、新しい ccache に保存されます。 .これにより、再帰的な Kerberos 認証ログインが可能になります。

TGT はローカルでも取得できることに注意してください。 Linux では、kinit を使用してこれを行うことができます。 、次に ssh -K を使用して接続します . Windows の場合、Windows AD ドメインにログインしている場合、Windows がそれを行います。それ以外の場合は、MIT Kerberos を使用できます。 PuTTY 0.61 は Windows (SSPI) と MIT (GSSAPI) の両方の使用をサポートしていますが、手動で転送 (委任) を有効にする必要があります。

gssapi-keyex も可能ですが、公式の OpenSSH には受け入れられませんでした。


Linux
  1. Awkの「!a [$ 0] ++」はどのように機能しますか?

  2. Linux –負荷平均は最新のCPUでどのように機能しますか?

  3. Ssh – Tcp-keepaliveはSshでどのように機能しますか?

  1. パスワードでSSHログインを無効にする方法

  2. ps コマンドはどのように機能しますか?

  3. ループバック インターフェイスはどのように機能しますか

  1. NGINXとは何ですか?それはどのように機能しますか?

  2. スティッキービットはどのように機能しますか?

  3. 方法:Ansibleを使い始める