|
SSH přihlašování pomocí klíčů |
|
|
|
|
Written by Administrator
|
|
Thursday, 25 February 2010 11:26 |
|
V tomto krátkém návodu vám ukážu jak se lze přihlašovat do systému pomocí ssh klíčů bez hesla. je to praktické ve chvíli kdy píšete skripty které např. vykonávají vzdálené příkazy na serveru, nebo se vám nechce se dokolečka přihlašovat 100x denně.
Než přistoupíme k věci měli by jste vědět že ssh klíč není totéž co certifikát. Klíč je v tomto případě totéž co přístupová karta (nebo klíče) podle kterých jen systém pozná zda máte nebo nemáte někam přístup. Rozhodně to nezvyšuje úroveň zabezpečení samotné komunikace k tomu slouží certifikáty které řešit nebudem. Jdem na to :) Nejprve si vygenerujeme na svém pc odkud se budeme hlásit klíč kterým se budeme přihlašovat. ssh-keygen -t dsa Budete dotázáni kam klíč ulozit. Vetšinou stačí když klíč necháme tam kam nám ho ssh-keygen nabízí uložit (u mne /home/rainbof/.ssh/id_dsa) a hlášku odklepneme. Pokud se dozvite v dalsim kroku že uz klíč máte tak to znamená že už ho máte :D. Pokud jste si ho nevyrobili sami tak se vám vytvořil při prvním přihlášení nebo během instalace systému. Heslo k tomuto klíči je pak stejné jako vase heslo do systemu. Pokud se tedy chcete prihlasovat bez hesla tak je potreba ho přepsat a tím vygenerovat znovu (a heslo nezadávat). Nyní máme v adresáři .ssh aktuálního uživatele dva soubory id_dsa což je jeho osobní klíč a id_dsa.pub což je veřejný klíč. Veřejný je ten co vezmeme a nakopírujeme na server na který se pak budeme smět prihlásit. Já jsem si ho nakopíroval do dočasné složky /tmp/id_dsa.pub. Teď se prihlasim na server a certifikat pridám do souboru autorizací. Je duležité se nesplést a nesmazat si ostatní klíče (certifikáty musí být v souboru jeden za druhým). Takže ten svůj v /tmp slozce přidám uživateli rainbof (mám na mysli uzivatele rainbof na serveru) takto: cat /tmp/id_dsa.pub>>/home/rainbof/.ssh/authorized_keys teď je klíč naimportovan (a můžu ho na serveru smazat příkazem rm /tmp/id_dsa.pub) Hotovo! restartujeme ssh démona (není třeba se obávat pádu už probíhajících spojení) příkazem sudo /etc/init.d/sshd restart nyní se k serveru můžeme přihlašovat treba takhle: ssh -l rainbof rainbof@server kde -l rainbof říká kdo (=který uživatel) má klíč k přihlášení a rainbof@ říká pro jakého uživatele klíč platí (to za tím je samozřejmě server pokud to nahodou nevíte) Co dělat když to nefunguje ? 1.) zkontolovat zda je povoleno použití ssh klíčů v souboru /etc/ssh/sshd_config se musí vyskytovat (nezakomentované) řádky. Pozor, nemusí následovat hned po sobě. PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys pokud tam nejsou, nebo jsou zakomentovány je potřeba je opravit. 2.) Není uživateli zakázáno přihlašování pomocí ssh klíčů ? v souboru /etc/ssh/sshd_config se někdy nachází dvě nastavení DenyUsers a AllowedUsers ktere můžou obsahovat seznam uživatelů oddělených mezerami. typické bezpečné nastaveni povolující jen pro některé uživatele použití ssh klíčů je DenyUsers * AllowedUsers rainbof elcabra To znamená že zakázaní jsou všichni, ale rainbof a elcabra jsou vyjímky a smí takto přihlašovat. 3.) pokud máte jiný problém, je užitečné zobrazit si ve ktere fázi přihlašování to vlastně spadlo toho docílíme zapnutim "ukecaneho" režimu ssh. ssh rainbof@server -v |
|
Last Updated on Sunday, 30 May 2010 13:53 |
Comments
1/ ssh kontroluje striktne prava na authorized_keys , popr. na ~/.ssh - dost casto nejde prihlaseni prave kvuli nim
2/ je nanejvyse vhodne do authorized_keys davat restrikce v podobe povolenych prikazu, povolene IP adresy atd.. viz http://www.hackinglinuxexposed.com/articles/20030109.html
RSS feed for comments to this post