La'hev

Heverovy poznatky a poznámky

Uživatelské nástroje

Nástroje pro tento web


Toto je starší verze dokumentu!


Klíč místo hesla pro SSH

Šifrování - kryptografie

Přihlašování na SSH pomocí klíče je nejbezpečnější z mnoha metod, použitelných s OpenSSH. Už pro svou délku jsou mnohem obtížněji prolomitelné hrubou silou.

Nástin principu

Klient se serveru představí a žádá o komunikaci. Pokud má server u sebe uložený veřejný klíč toho kdo se představil, zašifruje jím nějaká data a pošle je klientovi. Ten je díky svému tajnému soukromému klíči jako jediný dokáže rozluštit a pošle zpět. Server díky tomu ví, že klient je skutečně ten za koho se vydává a je ověřený.

Předtím je potřeba na server nahrát veřejný klíč klienta.

Generování klíče

Pokud nemám, vytvořit na klientovi adresář

mkdir ~/.ssh &&  chmod 700 ~/.ssh

A vygenerovat do souborů veřejný a soukromý klíč (pokud klient svůj bezpečně uchovávaný klíč ještě nemá)

ssh-keygen

Možné volby

# specifikování typu, vychozi a doporuceny je rsa
ssh-keygen -t rsa
# specifikování delky, vychozi a doporuceny je rsa
ssh-keygen -b 2048

Budeme dotázání kam klíč uložit (nabízené výchozí místo je nejvhodnější), a na passphrase - přístupové heslo.

Passphrase - přístupové heslo

Soukromý klíč můžeme zašifrovat pomocí hesla, takže případné odcizení souboru s klíčem bude útočníkovi k ničemu, když nebude znát heslo. Při použití klíče s heslem jsme potom na něj dotázání, v našem systému se privátní klíč rozšifruje a dále použije kam má. Pomocí ssh-add jde zadat heslo pro náš klíč jednorázově pro otevřené sezení. Heslo u veřejného klíče nedává smysl. Heslo lze později měnit (pomocí volby -p).

Heslo lze nezadávat - to dává smysl, pokud se je potřeba provádět automatizované ověřování identity bez interaktivity uživatele.

Umístění veřejného klíče na server

Veřejný klíč klienta je potřeba přidat na server do souboru ~/.ssh/authorized_keys

scp ~/.ssh/id_rsa.pub uzivatel@domena.cz:~
ssh uzivatel@domena.cz
mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ../id_rsa.pub
exit

# alternativně
ssh-copy-id -i ~/.ssh/id_rsa.pub uzivatel@domena.cz

ssh-keygen - vygeneruje a uloží klíč do ~/.ssh (ve windows je to c:/Users/myUserName/.ssh). Vytvoří soubory id_rsa a id_rsa.pub (privátní a veřejný). Privátní je nutné si střežit jako oko v hlavě, veřejný rozdávat. Pokud existuje klíč (tzn. soubor id_rsa) v adresáři $HOME/.ssh, aplikace ho obvykle rozpoznají a automaticky použijí, takže k němu není potřeba specifikovat cestu.

Ověření funkčnosti např.

ssh uzivatel@domena.cz ls

Pokud klíč nemá standartní umístění

ssh -i cesta/ke/klici/klic uzivatel@domena.cz

Délka klíče

Poté se klíč určuje počtem bitů, alespoň 2048 je dobrý nápad (čím budou výkonější počítače, délka se bude zvětšovat).

linux/klic_misto_hesla.1428046124.txt.gz · Poslední úprava: 2015/04/03 09:28 autor: Hever