Nejčastějším nástrojem autentizace je heslo. To má ale v praktickém životě několik nevýhod: dá se uhodnout, mělo by být složité, musíte si jej pamatovat a hlavně je možné jej odposlechnout. Kompromitovaný SSH server tak může například sledovat, co píšete na klávesnici a na který další počítač se přihlašujete. Navíc pokud používáte jedno extra složité heslo na více strojích, má útočník přístup ke všem.
Všechny výše zmíněné nevýhody řeší metoda přihlašování k SSH pomocí veřejného klíče. Princip je velmi jednoduchý: máme soukromý a veřejný klíč, ten veřejný nahrajeme na všechny naše servery a privátní si necháme. Jelikož není možné z veřejného klíče zpětně ten privátní odvodit, servery nemohou tyto klíče využít k přihlášení mezi sebou, ale jen k ověření vaší totožnosti jakožto držitele privátní části.
Přihlašování pak funguje tak, že server vygeneruje náhodná data, která vám pošle. Vy je svým privátním klíčem podepíšete a pošlete zpět. Server pomocí veřejného klíče, který jste mu předtím dodali, ověří pravost podpisu a pustí vás dovnitř. To vše samozřejmě plně automaticky a velmi rychle. Navíc nedochází vůbec k přenosu tajné informace – privátního klíče. Vlastně tak jednoduše serveru prokážete znalost „hesla“, aniž mu ho musíte ukázat. Díky tomu není server schopen klíč jakkoliv zjistit, zkopírovat a zneužít. Ať by byl server modifikován jakkoliv.
Pokud ještě SSH klíče nemáte, je třeba je nejprve vygenerovat.
V balíku s PuTTY přichází i program PuTTYgen (PuTTY Key Generator).
Doporučuji si zkontrolovat a udržovat aktualizovanou verzi PuTTY. Vždy aktuální verze je dostupná na stránkách autora.
RSA
, délku klíče 2048
(default).
Generate
a pohybujte náhodně myší v okně programu. obrázek
Key comment
si můžete ke klíči napsat poznámku, poznámka je pak i v s souboru na serveru a ulehčuje rozlišení jednotlivých klíčů.
Do pole Key pashphrase | Confirm passphrase
si zadejte heslo (frázi) kterou bude šivrovaný váš privátní klíč. To budete muset zadávat vždy při použití privátního klíče. Volte dostatečně silné heslo.
Save private key
a soubor uložte ideálně do domovského adresáře, kam máte přístup pouze vy. Soubor je sice chráněný zadaným heslem (frází), ale v žádném případě by neměl být přístupný někomu dalšímu. Výsledný soubor (ppk) obsahuje i veřejný klíč, pro jeho zobrazení v budoucnosti je potřeba soubor opět nahrát do programu PyTTYgen (tlačítkem Load
). Uložení veřejného klíče do separátního souboru je tak čistě volitelné.
Veřejný klíč si můžete uložit klepnutím na tlačítko Save public key
a zadáním umítění a jména souboru. Jde o běžný textový soubor. obrázek
Pro generování klíčů pod linuxem slouží program ssh-keygen z balíku OpenSSH.
~/.ssh/authorized_keys
. Pokud soubor nebo i adresář .ssh
neexistuje, vytvořte ho.cat "jméno souboru s veřejným klíčem (id_rsa.pub)" >> ~/.ssh/authorized_keys
Pro nakopírování klíče na server můžete použít utlilitu ssh-copy-id
. Pro detaily, prosím, konzultujte manuálové stránky nebo web.
Pro to, aby klient při navazování spojení použil klíč, je třeba ho nastavit.
Load
, nebo zadejte hostname serveru a název session pro vytvoření nové konfigurace.
Connection
- SSH
a klepněte na Auth
. obrázek
Private key for authentication
klepněte na Browse...
a zadejte váš soubor s privátním klíčem (.ppk).
Connection
- Data
si ještě můžete do pole Auto-login username:
zadat svoje uživatelské jméno na serveru. PuTTY ho pak odešle za vás.
Session
, tím se vrátíte na základní oprazovku a tam klepněte na tlačítko Save
.
Sice již používáme mnohem bezpečnější metodu přihlašování, ale stále musíme zadávat heslo (frázi), takže rozdíl pro uživatele je malý. Naštěstí i toto si lze zjednodušit. K tomuto účelu slouží agent, který udržuje privátní klíč v paměti a na požádání ho poskytne ssh klientovi. Agent se tak na heslo (frázi) zeptá jen jednou při svém startu.
V balíku PuTTY pro tento účel slouží program Pageant
.
Add Key
a zadejte váš soubor s privátním klíčem (.ppk).
Tento postup byste museli opakovat vždy každý den po startu počítače. Proto je lepší ho také zautomatizovat.
SSH
v domovském adresáři vytvořte soubor pageant.cmd
, klepněte na něj pravým tlačítkem a vyberte Edit
a napište do něj start "cesta k programu pageant (typicky C:\Program Files\PuTTY\pageant.exe)" název souboru s privátním klíčem (.ppk)takže například takto:
start "C:\Program Files\PuTTY\pageant.exe" id.ppk
obrázek start "C:\Program Files\PuTTY\pageant.exe" klic1.ppk klic2.ppk klic3.ppk ....
. Pageant se vás pak po startu zeptá postupně na všechna hesla (fráze).)
Win + R
a do okna které se objeví zadejte shell:startup
. obrázek
OK
a zobrazí se okno průzkumníka. Do tohoto okna vytvořte zástupce souboru pageant.cmd
(např.: přetáhněte soubor pravým tlačítkem a zvolte Create shortcuts here
) obrázek
Tím je zajištěno, že se vám program pageant
spustí po každém startu počítače automaticky. Pokud v budoucnosti budete potřebovat přidat nebo upravit klíče, které má pageant poskytovat, upravujte pouze soubor pageant.cmd
, žádné další kroky již nejsou potřeba.
V linuxu slouží pro účely agenta program ssh-agent
. V závislosti na vaší distribuci a nastavení zajistěte, aby program ssh-agent
byl automaticky spuštěn po startu. Klíče se do agenta přidávají příkazem ssh-add
. Pro detaily, prosím, konzultujte manuálové stránky nebo web.