Last Updated on 21/11/2024 by administrator
Generate SSH Key Pair (Windows, Linux and PuTTy)
Generate SSH Key Pair (Windows, Linux and PuTTy)
Motivace:
Tento článek podrobně popisuje tři různé metody generování SSH klíčového páru a na Windows 11, Ubuntu 24.04 LTS a pomocí PuTTY ve Windows.
Implementace:
Níže je popsáno jak vygenerovat SSH klíčový třemi možnými způsoby a to přes:
- Windows 11
- Ubuntu 24.04 LTS
- Externím programem Putty ve Windows
1. Metoda č. 1 – Windows 11 (Version 23H2):
Otevřít příkazový řádek a pomocí příkazu níže vygenerovat privátní a veřejný klíč:
ssh-keygen -t ed25519
Výstup příkazu ssh-keygen -t ed25519 ukazuje, že ve složce C:\Users\uzivatel/.ssh/ se vytvořil klíčový pár. Pro zvýšení bezpečnosti privátního klíče je možné zadat heslo (tzv. passphrase):
Generating public/private ed25519 key pair. Enter file in which to save the key (C:\Users\uzivatel/.ssh/id_ed25519): Created directory 'C:\\Users\\uzivatel/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\uzivatel/.ssh/id_ed25519 Your public key has been saved in C:\Users\uzivatel/.ssh/id_ed25519.pub The key fingerprint is: SHA256:D9scLfY/7k1pvaE2lX0jX5Q+zHpFD4HykJafzgCocNk uzivatel@DESKTOP-8V74EQ0 The key's randomart image is: +--[ED25519 256]--+ | o . o . | | . o E . * . . | | o . o = . ..| | . ..+ ..o| | S ++. +++| | B +o. OO| | . + . =+O| | =+=o| | .+*o.| +----[SHA256]-----+
Ve složce C:\Users\uzivatel/.ssh/ se vytvořili dva druhy klíčů a to veřejný (id_ed25519.pub) a privátní (id_ed25519 bez přípony):
2. Metoda č. 2 – Ubuntu 24.04 LTS:
Otevřít terminál a pomocí příkazu níže vygenerovat privátní a veřejný klíč:
ssh-keygen -t ed25519
Výstup příkazu ssh-keygen -t ed25519 ukazuje, že ve složce /home/user1/.ssh/ se vytvořil klíčový pár. Pro zvýšení bezpečnosti privátního klíče je možné zadat heslo (tzv. passphrase):
user1@ubuntu:~$ ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/user1/.ssh/id_ed25519): Created directory '/home/user1/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user1/.ssh/id_ed25519 Your public key has been saved in /home/user1/.ssh/id_ed25519.pub The key fingerprint is: SHA256:hC8oud4Cva33QO68oF17wkNga6V+Z9B5TFbVY6ei/ww user1@ubuntu The key's randomart image is: +--[ED25519 256]--+ | ... | | . . + .| | . .. . + | | o... oo . . | | oo=o..=S . . | |. ==o o.o . | | +o=+. . .E | | ++*Bo+ .o | |. +=*O. .o | +----[SHA256]-----+
Ve složce /home/user1/.ssh/ se vytvořili dva druhy klíčů a to veřejný (id_ed25519.pub) a privátní (id_ed25519 bez přípony):
ls -l /home/user1/.ssh/
-rw------- 1 user1 user1 432 Nov 21 17:07 id_ed25519 -rw-r--r-- 1 user1 user1 115 Nov 21 17:07 id_ed25519.pub
Metoda č. 3 – PuTTy:
1. Stažení a spuštění PuTTYgen
- Stáhnout PuTTYgen z oficiálních stránek PuTTY.
- Spustit puttygen.exe
2. Generování klíčů
Jak typ klíče bude vybrán EdDSA, což je je obecný algoritmus pro digitální podpisy založený na eliptických křivkách. Jako eliptická křivka bude vybrána Ed25519, což je křivka Curve25519 a je optimalizována pro bezpečnost a efektivitu. Následně kliknout na Generate a při generování pohybovat myší po okně PuTTYgen, což přispěje k náhodnosti generování.
Pro zajímavost Ed25519 nabízí ekvivalentní bezpečnost při mnohem menší velikosti klíče než RSA. Například Ed25519 poskytuje bezpečnost podobnou 3072bitovému klíči RSA s klíčem o velikosti pouhých 256 bitů. Ed25519 tak je úspornější z hlediska výpočetních nároků i paměti, což je výhodné pro použití v zařízeních s omezenými zdroji (např. IoT).
3. Uložení klíčů
- Veřejný klíč:
- Kliknout na Save public key pro uložení veřejného klíče do souboru.
- Zkopírovat veřejný klíč z pole Public key for pasting into OpenSSH authorized_keys file
- Pozn. Tento formát veřejného klíče je potřeba mít pokud se bude vkládat souboru authorized_keys např. na Unix/Linux OS.
- Privátní klíč:
- Kliknout na Save private key. Pro zvýšení bezpečnosti privátního klíče je možné zadat heslo (tzv. passphrase)
- Uložit soubor s privátním klíčem na bezpečné místo.
Další články:
V dalším článku je ukázáno, jak naimportovat SSH veřejný klíč do Unix/Linux serveru.