GNU/Linux >> Znalost Linux >  >> Linux

Jak funguje Kerberos s SSH?

První přihlášení:

  • L odešle uživatelské jméno a požadavek na ověření SSH na S1
  • S1 vrací dostupné mechanismy ověřování SSH, přičemž jedním z nich je „heslo“
  • L vybere "heslo" a odešle prosté heslo S1
  • S1 poskytuje uživatelské jméno a heslo zásobníku PAM.
  • Na S1, PAM (obvykle pam_krb5 nebo pam_sss ) požaduje TGT (ticket-granting ticket) od Kerberos KDC.
    1. S1 získá TGT.
      • Starý styl (bez předběžného ověření):S1 odešle AS-REQ a přijme AS-REP obsahující TGT.
      • Nový styl (s preauth):S1 používá vaše heslo k zašifrování aktuálního časového razítka a připojí ho k AS-REQ. Server dešifruje časové razítko a ověří, že je v povoleném časovém zkreslení; pokud se dešifrování nezdaří, heslo je okamžitě odmítnuto. V opačném případě se v AS-REP vrátí TGT.
    2. S1 se pokusí dešifrovat TGT pomocí klíče vygenerovaného z vašeho hesla. Pokud je dešifrování úspěšné, je heslo přijato jako správné.
    3. TGT se uloží do nově vytvořené mezipaměti pověření. (Můžete si prohlédnout $KRB5CCNAME proměnnou prostředí k nalezení ccache, nebo použijte klist vypsat jeho obsah.)
  • S1 používá PAM k provádění kontrol autorizace (závislé na konfiguraci) a otevření relace.
    • Pokud pam_krb5 je volána ve fázi autorizace, kontroluje, zda ~/.k5login existuje. Pokud ano, musí uvést klientský principál Kerberos. Jinak je jediným povoleným objektem username@DEFAULT-REALM .

Druhé přihlášení:

  • S1 odešle uživatelské jméno a požadavek na ověření SSH na S2
  • S2 vrací dostupné auth mech, jeden z nich je "gssapi-with-mic"
  • S1 požaduje tiket za host/s2.example.com@EXAMPLE.COM odesláním TGS-REQ s TGT do KDC a přijetím TGS-REP se servisním lístkem od něj.
  • S1 vygeneruje "AP-REQ" (požadavek na ověření) a odešle ho S2.
  • S2 se pokusí požadavek dešifrovat. Pokud se to podaří, je provedena autentizace. (PAM se pro ověřování nepoužívá.)
    • Jiné protokoly, jako je LDAP, se mohou rozhodnout šifrovat další přenos dat pomocí „klíče relace“, který byl součástí požadavku; SSH si však již vyjednalo vlastní šifrovací vrstvu.
  • Pokud je ověření úspěšné, S2 použije PAM k provedení kontroly autorizace a otevření relace, stejně jako S1.
  • Pokud bylo povoleno předávání pověření a TGT má příznak „forwardable“, pak S1 požádá o kopii uživatelského TGT (s nastaveným příznakem „forwarded“) a odešle ji S2, kde se uloží do nového ccache . To umožňuje rekurzivní přihlášení ověřená Kerberos.

Upozorňujeme, že TGT můžete získat také lokálně. V systému Linux to můžete provést pomocí kinit a poté se připojte pomocí ssh -K . Pokud jste v systému Windows přihlášeni k doméně Windows AD, systém Windows to udělá za vás; jinak lze použít MIT Kerberos. PuTTY 0.61 podporuje použití Windows (SSPI) i MIT (GSSAPI), i když předávání (delegování) musíte povolit ručně.

gssapi-keyex je také možné, ale nebylo přijato do oficiálního OpenSSH.


Linux
  1. Linux – Jak funguje průměrná zátěž u moderních procesorů?

  2. Jak zakázat přihlášení SSH pomocí hesla

  3. Jak rm funguje? Co dělá rm?

  1. Jak vlastně sig_atomic_t funguje?

  2. Jak funguje debugger v Linuxu?

  3. Jak funguje rozhraní zpětné smyčky

  1. Co je NGINX? Jak to funguje?

  2. Jak Awk ‚!a[$0]++‘ funguje?

  3. Jak na to:Začínáme s Ansible