Moje společnost zakázala ověřování veřejného klíče SSH, proto musím ručně zadat pokaždé, když své heslo (nepředpokládám změnu /etc/ssh/sshd_config).

Nicméně gssapi-keyex a gssapi-with-mic autentizace jsou povolena (viz níže ssh výstup ladění).

Jak mohu v tomto případě použít automatické přihlášení?
Mohu zneužít gssapi-keyex a / nebo gssapi-with-mic autentizace?

> ssh -v -o PreferredAuthentications=publickey hostxx.domainxx OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to hostxx.domainxx [11.22.33.44] port 22. debug1: Connection established. debug1: identity file /home/me/.ssh/identity type -1 debug1: identity file /home/me/.ssh/id_rsa type -1 debug1: identity file /home/me/.ssh/id_dsa type 2 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 debug1: match: OpenSSH_5.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.3 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host "hostxx.domainxx" is known and matches the RSA host key. debug1: Found key in /home/me/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: gssapi-keyex,gssapi-with-mic,password debug1: No more authentication methods to try. Permission denied (gssapi-keyex,gssapi-with-mic,password). 

Komentáře

  • Python ‚ s fabric dělá skvělou práci při řešení automatizace ssh.
  • Ahoj @ DanGarthwaite Používáte Fabric k manuálnímu přihlášení k jiným vzdáleným serverům? Můžete mi vysvětlit, jak jej používáte. Uveďte prosím odpověď. Na zdraví
  • Pokud nejste ‚ t ve sféře Kerberos (nebo doméně Active Directory), pak GSSAPI pro vás pravděpodobně nebude užitečný. To znamená, že deaktivace ověřování veřejného klíče se zdá být docela absurdní.
  • @olibre Fabric je nástroj pro spouštění příkazů na jednom nebo více serverech přes SSH. Tyto příkazy jsou obvykle uspořádány do “ fabfile „, jako je Makefile. Dělá nesmírně dobrou práci při zmizení SSH (po ověření) a zvládá všechny způsoby, kterými mají klienti a servery SSH tendenci přerušovat kontrolu. K dispozici je rychlý výukový program: docs.fabfile.org/en/1.7/tutorial.html
  • Prosím, @DanGarthwaite, můžete dát příklad souboru fab, který by se přihlásil k jinému počítači (SSH gssapi bez požadavku na heslo) a otevřel shell? Můžete to uvést v odpovědi. (Za pět minut jsem v tutoriálu nenašel, jak to udělat). Na zdraví;)

Odpověď

Možná.

  • Můžete získat lístek pro vašeho ředitele ve vašem klientském systému buď jako součást standardního procesu přihlášení nebo ručně (kinit, MIT Kerberos pro Windows)?
  • Má server jistinu kerberos, nebo mu ji můžete dát? Mělo by mít formu host/[email protected].
  • Je ve vašem klientovi povoleno GSSAPI ověřování?
  • Ví váš klient, do které sféry server patří, buď pomocí záznamu prostředku DNS TXT nebo místního mapování?

Pokud jste řekli „ano“ vše z výše uvedeného, pak vám gratulujeme, můžete použít GSSAPIAuthentication.

  • Můžete v závislosti na vašem nastavení je také nutné povolit delegování pověření.

Kroky testování:
(Předpokládáme: doména = example.com; realm = EXAMPLE.COM)

  1. kinit [email protected]
    • V ideálním případě to zvládne váš standardní přihlašovací proces zahrnutím buď pam_krb5 nebo pam_sss (s auth_provider = krb5) v příslušných pam stack.
  2. kvno host/[email protected]
    • Toto je krok ladění. ssh to dělá automaticky, pokud máte platnou mezipaměť a mluvíte s sshd, který podporuje gssapi-with-mic nebo gssapi-keyex.
  3. dig _kerberos.example.com txt by měl vrátit "EXAMPLE.COM"
    • Alternativně může být mapování uloženo v [domain_realm] sekci /etc/krb5.conf jako .example.com = EXAMPLE.COM, ale metoda dns má mnohem lepší měřítko.
  4. ssh -o GSSAPIAuthentication=yes [email protected]
    • Chcete-li se přihlásit k jinému uživatelskému jménu, než je vaše hlavní osoba na serveru, budete muset vědět, jak jej namapovat, jehož podrobnosti se sem nedostanu.

Komentáře

  • Ahoj. Před časem jsem ti dal +1, ale ve skutečnosti ne vědět, jak zkontrolovat své čtyři body. (Nejsem správce, jen vývojář). Mohl byste zadat příkazový řádek ke kontrole připojení SSH pomocí g gssapiauthentication? Možná mohu použít gssapiauthentication na svém stroji s Linuxem. (Mám k tomu použít kinit?) Na zdraví;)

Odpovědět

Metoda ve 4 krocích je správná (v DNS jsou také záznamy Kerberos SRV, které jsou ještě elegantnější a jsou obsaženy v každé službě Active Directory). Používám to po celou dobu a prosazuji výše uvedené metody pubkey, většinou z bezpečnostních a kontrolních důvodů.

To ale znamená pouze interaktivní přihlášení, i když to může být kvaziinteraktivní, jakmile na své pracovní stanici dostanete lístek.Lístek Kerberos funguje podobně jako agent SSH; jakmile to máte, nová připojení jsou okamžitá a bez hesla; i když s časovým limitem.

Chcete-li získat interaktivní dávkové přihlášení, musíte získat soubor keytab, soubor, který v podstatě obsahuje heslo pro účet Kerberos, podobně jako soukromá polovina klíče SSH. Podle bezpečnostních opatření platí; zejména proto, že tabulka klíčů není šifrována ani chráněna heslem.

Velmi se zdráhám poskytnout svým uživatelům jejich klíčenky pro jejich osobní účty, ale agresivně používám účty služeb s minimálními oprávněními pro různé dávkové úlohy, zejména tam, kde je důležité, aby byly pověření delegována na vzdálené systému, něco, co pubkey jednoduše nemůže dosáhnout.

Keytabs lze vytvořit pomocí ktutil na Unixu nebo KTPASS.EXE ve Windows (druhý ze služeb AD Kerberos). Všimněte si, že ktutil existuje ve dvou příchutích, Heimdal a MIT, a jejich syntaxe se liší. Čtení stránky na příslušném systému pomáhá.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *