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
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)
-
kinit [email protected]
- V ideálním případě to zvládne váš standardní přihlašovací proces zahrnutím buď
pam_krb5
nebopam_sss
(sauth_provider = krb5
) v příslušnýchpam stack
.
- V ideálním případě to zvládne váš standardní přihlašovací proces zahrnutím buď
-
kvno host/[email protected]
- Toto je krok ladění.
ssh
to dělá automaticky, pokud máte platnou mezipaměť a mluvíte ssshd
, který podporujegssapi-with-mic
nebogssapi-keyex
.
- Toto je krok ladění.
-
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 metodadns
má mnohem lepší měřítko.
- Alternativně může být mapování uloženo v
-
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žítgssapiauthentication
na svém stroji s Linuxem. (Mám k tomu použítkinit
?) 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á.
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í;)