SSH klíče ve Windows - PuTTY
Použití soukromých klíčů přináší do SSH komunikace více bezpečí a pohodlí. Tento návod není o SSH klíčích obecně, ale je specifický pro případ, že se připojujeme z Windows na Unixový SSH server a používáme k tomu SSH klienta PuTTY.
Výhody použití SSH klíčů:
- útočníkovi nestačí uhodnout heslo, musí ukrást i soubor se soukromým klíčem (za předpokladu, že je přihlášení s heslem zakázané)
- uživatel nemusí heslo (frázi) zadávat při každém přihlášení - může si ji pamatovat SSH agent
- Pododlnější a zároveň bezpečné přihlašování na více serverů – uživatel používá jen jedno heslo (frázi ke klíči) a správci jednotlivých serverů toto heslo neznají (tudíž se nemohou přihlásit jménem uživatele na jiné servery, což by mohli, pokud by uživatel používal stejná hesla bez klíčů na různých serverech).
Každá mince má dvě strany – použití SSH klíčů má i své nevýhody:
- Heslo (frázi) ke klíči může útočník lámat offline, tudíž mnohem rychleji a nepozorovaně. Samozřejmě jen za předpokladu, že je uživatel hloupý a klíč si nedokáže uhlídat.
- Provozovatel serveru nemá kontrolu nad kvalitou hesla (fráze) ke klíči – odpovědnost se tak přesouvá na uživatele.
Můžou nastat dvě možnosti podle toho, jestli už svůj SSH klíč máme z unixu nebo ho teprve vytváříme:
a) Vytváříme nový pár SSH klíčů
K vytvoření soukromého a veřejného klíče potřebujeme program PUTTYGEN.EXE, který si stáhneme z oficiálních stránek projektu PuTTY. A vytvoříme si pár klíčů (veřejný a soukromý) podle následujícího obrázku: Key / Generate key pair. Během generování klíčů je potřeba hýbat myší přes šedou plochu - pohyby myši slouží jako zdroj náhody pro generátor.
Po vytvoření páru klíčů zadáme dostatečně silné heslo (frázi), kterým bude náš soukromý klíč chráněný. Jako komentář je vhodné napsat něco jako jméno_uživatele@náš_server.cz Soukromý a veřejný klíč si uložíme do různých souborů pomocí tlačítek "Save public key" a "Save private key". Svůj soukromý klíč musíme chránit, aby se k němu nedostal nikdo jiný, veřejný klíč naopak můžeme dát komukoli.
b) Převod existujícího soukromého klíče
PuTTY používá jiný formát klíčů než OpenSSH. Proto je potřeba náš klíč nejdříve importovat pomocí Conversions / Import key. Importovaný pár klíčů si uložíme do souborů podobně jako v případě a) a další postup už je stejný.
Nahrání veřejného klíče na server
Aby fungovalo ověřování pomocí SSH klíčů, musí server znát náš veřejný klíč. Zkopírujeme si text z pole "Public key for pasting into OpenSSH authorized_keys file" do schránky a potom ho vložíme na SSH server do souboru ~/.ssh/authorized_keys. K nahrání klíče potřebujeme být k serveru přihlášeni, tzn. v tuto chvíli musí server ještě povolovat přihlášení heslem, nebo nám tam klíč nahraje správce serveru.
Nastavíme správná práva ke složce .ssh pomocí příkazu: chmod 700 -R ~/.ssh (důležité je, aby do této složky nemohl zapisovat nikdo kromě nás).
Připojení
Ve stromu nastavení vybereme Connection / SSH / Auth a jako "Private key file for authentication" zadáme soukromý klíč, který jsme si dříve uložili do souboru. PuTTY teď pro přihlášení použije SSH klíč a místo na heslo se nás zeptá na frázi, kterou je tento klíč chráněn.
Pageant - SSH agent
Pohodlnější cestou je použití SSH agenta (v tomto případě Pageant), který si může pamatovat heslo (frázi) k našemu soukromému klíči a my ho pak nemusíme zadávat při každém přihlašování na server.
Po spuštění se Pageant nachází v systémové liště vedle hodin. Svůj SSH klíč (*.ppk) přídáme pomocí "Add Key" a potom jsme dotázáni na heslo ke klíči.
Při přihlašování se nás už PuTTY nebude ptát na heslo ke klíči (dokud Pageanta neukončíme).
Tip: jméno uživatele můžeme zadat rovnou do políčka "Host" v dialogu PuTTY - zadáme např. franta@example.com
užitočné
ďakujem za článok! :)
Poděkování
Pěknej článek, pomohl mi, díky