3. Tvorba kľúčov v systéme linux

V systéme linux alebo UNIX sa k tvorbe kľúčov používa program ssh-keygen, ktorý sa vyvoláva takto:

ssh-keygen -t type
type
typ šifrovacieho algoritmu - rsa alebo dsa

Priebeh tvorby kľúčov obidvoch typov rsa aj dsa je na nasledujúcom obrázku. Rýchlosť tvorby kľúčov závisí od rýchlosti procesora počítača, kde sa kľúče generujú.

Tvorba klucovŽltou farbou sú vyznačené príkazy, ktoré píše užívatel. Pri generovaní obidvoch kľúčov je užívatel najskôr vyzvaný, aby zadal meno a cestu k súboru, kde budú kľúče uložené. V ukážke je ponechané pre súkromný kľúč podľa jeho typu navrhnuté meno id_rsa resp. id_dsa v adresári /home/vapo/.ssh. Verejný kľúč má potom meno id_rsa.pub resp. id_dsa.pub. Ďalej užívateľ má možnosť kľúč chránit proti zneužitiu zadaním textu, ktorý sa volá passphrase. Odporúča sa ho použiť. Tento text sa zadáva pri použití kľúča, ale v priebehu nadviazovania spojenia sa neprenáša po sieti. Slúži k overeniu oprávnenosti použitia kľúča vo vlastom počítači. Ak sa pri generovaní kľúčov nezadá žiadna passphrase, kľúče môžu byť zneužité iným užívateľom. Passphrase sa zadáva dvarazy ako heslo (viď. obrázok). Na konci obrázku je vypísaný obsah adresára .ssh.  Všetky kľúče sú textové súbory a je možné ich obsah vypísať programom less alebo cat.



Vygenerované verejné kľúče sa môžu začať používať ich odovzdaním klientom. Napr. je možné ich preniesť na iný UNIX-host. Podľa protokolu SSH musia byť uložené v domácom adresári užívateľa v podaresári .ssh ako súbor s menom authorized_keys. Tu budú použité k overeniu užívateľa pri nadviazaní spojenia. Prenos kľúčov na iný UNIX-host je možné vykonať službou FTP alebo príkazom scp. Príkaz scp má syntax
scp [-r] file1 file2
kde
-r
je voľba používajúca sa pri prenose celých adresárov
file1
zdrojové súbory alebo adresáre; v mene je možné použiť rozširujúce znaky mena súboru * alebo ?
file2
cieľový súbor alebo adresár; adresár sa musí použiť v prípade kopírovania viacerých súborov resp. adresárov; ak sa kopíruje len jeden súbor, je možné ho premenovať
Zo zdrojového a cieľového súboru musí mať jeden lokálny formát a druhý sieťový formát. Príkazom scp nie je možné prenášať súbory medzi dvomi počítačmi!!! Sieťový formát začína e-mail adresou doplnenou adresárom a menom súboru. Ako ukončovací znak e-mail adresy sa používa znak dvojbodka. Ak sa prenáša súbor bez premenovania, stačí uviesť v parametri file2 len adresár.

Príklad
scp ./ssh/id_?sa.pub vapo@modserv.fri.uniza.sk:.

Týmto príkazom sa prenesú vygenerované verejné kľúče zo svojho štandardného uloženia užívateľovi vapo na počítači modserv.fri.uniza.sk do jeho domáceho adresára. Pred prenosom sa musí zadať heslo užívateľa vapo na počítači modserv.fri.uniza.sk. Na počítači modserv.fri.uniza.sk sa potom kľúče uložia do súboru authorized_keys príkazom

cat id_?sa.pub >> .ssh/authorized_keys

Ak subor neexistuje, je vytvorený; ak existuje, sú kľúče pripojené na jeho koniec.

Teraz už pri používaní služieb protokolu SSH môže užívateľ vapo na stroji fpvlinux byť overovaný verejným kľúčom rovnakým užívateľom na stroji modserv. Ak sa tieto klúče uložia aj u iného užívateľa na stroji modserv, môže užívateľ vapo@fpvlinux komunikovať bez zadávania hesla aj s ním. Na stroji fpvlinux sa zadáva len passphrase kľúčov.