Scroll to navigation

SSH-KEYGEN(1) SSH SSH-KEYGEN(1)

JMÉNO

ssh-keygen - generátor páru autentizačních klíčů

POUŽITÍ

ssh-keygen [-q ] [-b bitů] -t typ [-N nové-přístup-heslo] [-C komentář] [-f výstup_soubor_s_klíčem]
ssh-keygen -p [-P staré-přístup-heslo] [-N nové-přístup-heslo] [-f soubor_s_klíčem]
ssh-keygen -i [-f soubor_s_klíčem]
ssh-keygen -e [-f soubor_s_klíčem]
ssh-keygen -y [-f soubor_s_klíčem]
ssh-keygen -c [-P přístupové-heslo] [-C komentář] [-f soubor_s_klíčem]
ssh-keygen -l [-f soubor_s_klíčem]
ssh-keygen -B [-f soubor_s_klíčem]
ssh-keygen -D čtečka
ssh-keygen -F jméno_hosta [-f seznam_známých_hostů]
ssh-keygen -H [-f seznam_známých_hostů]
ssh-keygen -R jméno_hosta [-f seznam_známých_hostů]
ssh-keygen -U čtečka [-f soubor_s_klíčem]
ssh-keygen -r jméno_hosta [-f soubor_s_klíčem] [-g]
ssh-keygen -G výstup_soubor [-v] [-b počet_bitů] [-M pamět] [-S místo_startu]
ssh-keygen -T výstup_soubor [-f vstup_soubor] [-v] [-a počet_testů] [-W generátor]

POPIS

Program ssh-keygen generuje a spravuje autentizační klíče pro ssh (1). ssh-keygen je schopen vytvořit RSA klíče pro použití v ssh protokolu verze 1 a RSA nebo DSA klíče pro ssh protokol verze 2. Typ generovaného klíče lze ovlivnit pomocí parametru -t. Pokud je program spuštěn bez parametrů je vygenerován RSA klíč pro protokol ssh ve verzi 2.

Program ssh-keygen může být také použit pro generování skupin používaných v Diffie-Hellman výměně(DH-GEX). Viz. MODULI GENERATION.

Normálně každý uživatel, který si přeje používat ssh s RSA autentizací, spustí jednou příkaz ssh-keygen pro vytvoření autentizačního klíče a jeho uložení do ~/.ssh/identity, ~/.ssh/id_dsa nebo ~/.ssh/id_rsa. Správce systému může používat ssh-keygen pro generování klíčů počítače. Viz /etc/rc.

Program normálně vygeneruje klíč a zeptá se na jméno souboru, do kterého má uložit soukromý klíč. Veřejný klíč uloží do souboru se stejným jménem, ale s připojeným ".pub". Program se také zeptá na přístupové heslo (passphrase). Přístupové heslo může být prázdné (klíč počítače musí mít prázdné přístupové heslo), nebo to může být řetězec libovolné délky. Dobrá přístupová hesla mají délku 10-30 znaků a nejsou tvořena větou nebo čímkoli, co jde snadno uhodnout (anglický text má entropii pouze 1-2 bity na slovo, takže poskytuje velmi špatná přístupová hesla). Přístupové heslo může být změněno později použitím volby -p.

Neexistuje žádný způsob, jak zjistit zapomenuté přístupové heslo. Pokud zapomenete nebo ztratíte přístupové heslo, budete muset vygenerovat nový klíč a zkopírovat příslušný veřejný klíč na ostatní stroje.

JE DŮRAZNĚ DOPORUČENO POUŽITÍ DOBRÉHO, NEUHODNUTELNÉHO PŘÍSTUPOVÉHO HESLA. NEPOUŽÍVEJTE PRÁZDNÉ PŘÍSTUPOVÉ HESLO POKUD NEVÍTE, CO DĚLÁTE.

V souboru s klíči RSA1 je také položka komentář. Tato položka slouží uživateli pro snadnější identifikaci klíče. Komentář může informovat, k čemu klíč je nebo jak je užitečný. Při vytváření klíče je komentář inicializován na uživatel@počítač, ale může být kdykoli změněn použitím volby -c.

Šifra použitá na zašifrování klíče přístupovým heslem je definována v ssh.h. Použitím volby -u mohou být klíče zašifrované jakoukoli podporovanou šifrou změněny na tuto implicitní šifru.

VOLBY

Určuje počet testů, které budou provedeny když jsou prověřováni DH-GEX kandidáti při použití -T příkazu.
Ukáže zakódovaný obsah specifikovaného soukromého nebo privátního klíče.
Určuje délku vytvářeného klíče v bitech. Pro RSA klíče je minimum 768 bitů. Implicitně je hodnota 2048 .Obecně se za dostačující pokládá 2048 bitů. Klíče DSA mají délku přesně 1024 bitů dle FIPS 186-2.
Vloží nový komentář.
Změní komentář v souborech se soukromými a veřejnými klíči. Je podporováno pouze pro RSA1 klíče. Program ze zeptá na jméno souboru, který obsahuje soukromý klíč, na přístupové heslo (jestliže jej klíč má), a na nový komentář.
Přečte soukromý, nebo veřejný OpenSSH klíč a vytiskne jej na stdout podle normy RFC 4716 SSH Public Key File. Tato volba dovoluje export klíčů ayb mohly být použity několika komerčními SSH implementacemi.
Vyhledá dané hostname v souboru known_hosts a vypíše všechny výskyty. Tato volba je užitečná pokud potřebujeme nalézt zahashované jméno hosta nebo adresu a může být také použita ve spojení s parametrem -H pro vytištění nalezených klíčů v zahashované podobě.
Určuje jméno souboru, do něhož bude uložen nebo z něhož bude čten klíč.
Vygeneruje kandidátní prvočísla pro DH-GEX. Tato prvočísla musí projít bezpečnostní kontrolou(parametr -T) před tím než budou použita.
Užití generického DNS formátu v kombinaci s parametrem -r.
Zahashuje soubor známí_hosté. Tento postup nahradí všechna jména hostů a jejich adresy jejich zahashovanou reprezentaci. Originální obsah souboru je přemístěn do souboru s příponou .old. Tyto hashe mohou být normálně použity ssh nebo sshd, ale pokud je obsah souboru prozrazen, neobsahují žádné informace, které by mohly sloužit k identifikaci. Tento parametr nemění existující zahashovaná jména hostů a jeho použití je proto bezpečné i na soubory obsahující kombinaci zahashovaných a nezahashovaných jmen.
Tato volba přečte nešifrovaný soukromý(nebo veřejný) soubor s klíčem ve formátu kompatibilním s SSH2 a vytiskne OpenSSH kompatibilní soukromý (nebo veřejný) klíč na stdout. ssh-keygen umí také číst RFC 4716 SSH Public Key File Format. Tento parametr dovoluje import klíčů z několika komerčních SSH implementací.
Ukáže otisk zadaného souboru s veřejným klíčem. Soukromé klíče ve formátu RSA1 jsou také podporovány. Pro RSA a DSA klíče se ssh-keygen pokusí najít odpovídající veřejný klíč a vytisknout jeho otisk. Pokud je tento parametr použit v kombinaci s -v tak je společně s otiskem poskytnuta i ASCII reprezentace.
Určuje množství paměti(v megabytech), které bude použito při generování modula pro DH-GEX.
Definuje nové přístupové heslo.
Definuje (staré) přístupové heslo.
Změní přístupové heslo k souboru se soukromým klíčem místo vytvoření nového soukromého klíče. Program se zeptá na jméno souboru, který obsahuje soukromý klíč, na staré přístupové heslo, a dvakrát na nové přístupové heslo.
Tichý ssh-keygen. Používá /etc/rc při vytváření nového klíče.
Vymaže všechny klíče patřící k zadanému jménu hosta ze souboru známých hostů. Tento parametr je užitečný k vymazání hashovaných hostů. (Viz -H parametr výše)
Vytiskne SSHFP otisk zdrojového záznamu se jménem hosta pro zadaný soubor s veřejným klíčem.
Definuje startovní bod (v hexadecimální soustavě) pro generování kandidátních modulo pro DH-GEX.
Testuje zda jsou skupiny DH kandidátních prvočísel(vygenerované pomocí -G) bezpečné.
Specifikuje jaký typ klíče má být vytvořen. Možné hodnoty jsou "rsa1" pro protokol verze 1 a "rsa" nebo "dsa" pro protokol verze 2.
Nahraje existující RSA soukromý klíč do karty ve čtečce.
Plný mód. Umožní aby ssh-keygen tiskl ladící informace o právě prováděné operaci. Toto je obzvláště vhodné pro ladění generování modula. Několikanásobné zadání parametru -v zvýší množství generované informace. Maximum je 3.
Určuje požadovaný generátor při testování kandidátních modulo pro DH-GEX.
Tento parametr přečte privátní soubor v formátu OpenSSH a vytiskne veřejný klíč na stdout.

GENEROVÁNÍ MODULA

Program ssh-keygen může být použit pro generování skupin pro Diffie-Hellman Group Exchange (DH-GEX) protokol. Generování těchto skupin je rozděleno na dva kroky: nejdříve jsou nagenerována kandidátní prvočísla pomocí rychlého, ale paměťově náročného procesu. Tato prvočísla jsou následně testována na vhodnost(náročné na CPU).

Generování prvočísel je prováděno pomocí parametru -G. Požadovaná délka prvočísla je specifikována pomocí parametru -b. Například:

# ssh-keygen -G moduli-2048.candidates -b 2048

Implicitně začíná pátrání po prvočíslech na náhodně zvoleném místě přičemž se bere ohled na preferovanou délku. Toto se dá změnit použitím parametru -S, který specifikuje jiné místo ne němž se má začít s vyhledáváním(v hexadecimální soustavě).

Jakmile byli kandidáti nagenerování, musí být ověřena jejich vhodnost. To může být uděláno pomocí parametru -T. V tomto módu bude ssh-keygen číst kandidáty ze standardního vstupu(pokud není specifikován soubor pomocí -f). Například:

# ssh-keygen -T moduli-2048 -f moduli-2048.candidates

Implicitně je každý kandidát podroben 100 testům. Jejich počet může být změněn pomocí parametru -a. Hodnota generátoru DH bude zvolena automaticky s přihlédnutím a prvočíslu. Pokud je žádoucí použít specifický generátor je toho možné docílit pomocí parametru -W. Povolené hodnoty jsou 2,3 a 5.

Vytříděné DH skupiny mohou být instalovány v /etc/ssh/moduli. Je nezbytné, aby tento soubor obsahoval modula v požadované bitové délce a aby oba komunikující konce sdílely shodná modula.

SOUBORY


~/.ssh/identity
Obsahuje RSA autentizační identity uživatele. Soubor nesmí být čitelný pro nikoho kromě vlastníka. Při generování klíče je možné zadat přístupové heslo, které bude použito pro zašifrování soukromé části souboru šifrou 3DES. Tento soubor není automaticky používán příkazem ssh-keygen, ale je poskytován jako implicitní soubor pro soukromý klíč.

~/.ssh/identity.pub
Obsahuje veřejný klíč pro autentizaci. Obsah tohoto souboru musí být přidán do ~/.ssh/authorized_keys na všech strojích, kam se budete chtít přihlašovat s použitím RSA autentizace. Obsah tohoto souboru není nutné udržovat v tajnosti.

~/.ssh/id_dsa
Obsahuje protokol verze 2 DSA identitu uživatele používanou pro autentizaci. Tento soubor by neměl být čitelný nikým jiným než uživatelem. Je možné specifikovat heslo při generování klíče; toto heslo pak bude použito pro zašifrování soukromé části tohoto souboru pomocí 3DES. Tento soubor není automaticky zpřístupněn ssh-keygen, ale je nabízen jako implicitní soubor pro privátní klíč. Tento soubor bude čten ssh(1) při pokusu o přihlášení.

~/.ssh/id_dsa.pub
Obsahuje DSA verze 2 veřejný klíč pro autentizaci. Obsah tohoto souboru by měl být přidán k souboru ~/.ssh/authorized_keys ne všech strojích, ke kterým se uživatel chce přihlašovat pomocí svého klíče. Není třeba držet obsah tohoto souboru v tajnosti.

~/.ssh/id_rsa
Obsahuje protokol verze 2 RSA identitu uživatele používanou pro autentizaci. Tento soubor by neměl být čitelný nikým jiným než uživatelem. Je možné specifikovat heslo při generování klíče; toto heslo pak bude použito pro zašifrování soukromé části tohoto souboru pomocí 3DES. Tento soubor není automaticky zpřístupněn ssh-keygen, ale je nabízen jako implicitní soubor pro privátní klíč. Tento soubor bude čten ssh(1) při pokusu o přihlášení.

~/.ssh/id_rsa.pub
Obsahuje RSA verze 2 veřejný klíč pro autentizaci. Obsah tohoto souboru by měl být přidán k souboru ~/.ssh/authorized_keys ne všech strojích, ke kterým se uživatel chce přihlašovat pomocí svého klíče. Není třeba držet obsah tohoto souboru v tajnosti.
~/.ssh/moduli
Tento soubor obsahuje Diffie-Hellman skupiny používané pro DH-GEX. Struktura souboru je popsána v moduli(5).

VIZ TÉŽ

ssh (1), ssh-add (1), ssh-agent (1), moduli(5), sshd (8)

The Secure Shell(SSH) Public Key File Format, RFC 4716, 2006.

AUTOŘI

OpenSSH je odvozeno od originálního a volného ssh 1.2.12, které bylo vydáno Tatu Ylonenem. Aaron Campbell, Bob Beck, MArkus Friedl, Niels Provos, Theo de Raadt and Dug Song odstranili mnohe chyby, doplnili funkčnost a vytvořili tak OpenSSH. Markus Friedl přispel k vývoji SSH protokolu ve verzích 1.5 a 2.0.

9. září 2009 SSH