Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Vytvoření a použití SSH klíčů

Modul 2: SSH a klíče · Doba čtení: 10 min.

Cíl lekce: Po této lekci umíte vytvořit pár klíčů, nahrát veřejný klíč na svůj server, přihlásit se bez hesla a uložit svůj soukromý klíč tak, aby ztráta notebooku nebyla katastrofou.

Klíčové pojmy: pár klíčů, veřejný klíč, soukromý klíč, ed25519, RSA, passphrase, ssh-agent, ssh-copy-id, authorized_keys, oprávnění 700 a 600, klíč pro každé zařízení, klíč FIDO2

Proč jsou klíče lepší než hesla

V lekci 1.3 jste se přihlásili heslem. Funguje to, ale server na internetu už od první minuty navštěvují programy, které hesla hádají. Podívejte se do logu čerstvě nainstalovaného serveru:

root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214

Stovky pokusů za hodinu jsou normální. Silné heslo je zastaví, ale vytvořili jste slabé místo, které nepotřebujete. Se SSH klíčem je hádání zbytečné: není tu nic, co by se dalo najít ve slovníku.

Klíč se skládá ze dvou částí, které k sobě patří, z páru klíčů:

  • Soukromý klíč zůstává na Vašem vlastním počítači. Kdo má tento soubor (a zná passphrase), se může přihlásit. Nesdílejte ho s nikým, ani se svým poskytovatelem, ani s helpdeskem.
  • Veřejný klíč předáte serveru. Ten smí vidět kdokoli: nelze se s ním přihlásit, slouží jen k ověření.

Při přihlášení se po lince neposílá žádné heslo. Váš počítač podpisem prokáže, že má soukromý klíč, a server tento podpis ověří pomocí veřejného klíče. I když někdo sleduje síť, neuvidí nic, co by mohl později znovu použít.

Vytvoření klíče

Klíč vytváříte na svém vlastním počítači, ne na serveru. Ve Windows 10 a 11, macOS a Linux je ssh-keygen již k dispozici. Otevřete PowerShell nebo Terminál:

anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026

Co se tu děje?

  • -t ed25519 volí typ. Ed25519 je krátký, rychlý a bezpečný a od OpenSSH 9.5 je také výchozím typem, pokud nic nezadáte. Pokud musíte obsluhovat starý systém, který ed25519 nezná, použijte RSA s alespoň 3072 bity: ssh-keygen -t rsa -b 4096. Starší typy jako DSA byly z OpenSSH odstraněny; nepoužívejte je.
  • -C je jen komentář. Uveďte do něj něco, podle čeho později poznáte, ze kterého zařízení klíč je. To ohromně pomůže, když budete muset klíč zneplatnit.
  • Passphrase šifruje soukromý klíč na Vašem disku. Pokud Vám někdo ukradne notebook, zloděj má zašifrovaný soubor. Bez passphrase by měl okamžitý přístup ke všem Vašim serverům.

Nyní máte dva soubory:

SouborCo to jeSdílet?
~/.ssh/id_ed25519Soukromý klíčNikdy
~/.ssh/id_ed25519.pubVeřejný klíč, jeden řádek textuAno, na server

Ve Windows jsou uloženy v C:\Users\anna\.ssh\. Veřejný klíč je jeden řádek, který začíná ssh-ed25519:

anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026

Nahrání veřejného klíče na server

Server hledá veřejné klíče v souboru ~/.ssh/authorized_keys uživatele, pod kterým se přihlašujete. Každý řádek je jeden klíč. Klíč tam můžete dostat třemi způsoby:

1. Při instalaci. Většina poskytovatelů má při vytváření nebo přeinstalaci VPS pole pro Váš veřejný klíč. U WebOké se toto pole jmenuje "SSH klíč" v obrazovce VPS; u jiných poskytovatelů to funguje podobně. Je to nejlepší způsob: přihlášení heslem pak nemusí být nikdy zapnuté.

2. Pomocí ssh-copy-id (macOS a Linux), dokud ještě funguje přihlášení heslem:

anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 1

3. Ručně, například z Windows nebo přes konzoli Vašeho poskytovatele. Vložte řádek ze souboru .pub do authorized_keys a nastavte správná oprávnění:

anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keys

Tato oprávnění nejsou detail. SSH server je kontroluje (nastavení StrictModes je ve výchozím stavu zapnuté): pokud mohou do Vaší složky .ssh nebo do Vaší domovské složky zapisovat i jiní, server Vaše klíče ignoruje. Pak prostě znovu uvidíte výzvu k zadání hesla, bez jasné chybové hlášky. Jak číst oprávnění, se naučíte v lekci 3.1.

Potom vyzkoušejte přihlášení v novém okně:

anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$

Výzva teď přichází z Vašeho vlastního počítače (passphrase Vašeho klíče), už ne ze serveru.

ssh-agent: odemknout jen jednou

Zadávat passphrase pokaždé je otravné. ssh-agent drží Váš odemčený klíč v paměti, dokud jste přihlášeni ke svému počítači:

anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)

V macOS se agent propojí s klíčenkou, ve Windows jde o službu "OpenSSH Authentication Agent" (jednorázově ji zapněte ve Službách). Tak máte pohodlí bez hesla a přesto zašifrovaný klíč na disku.

Pozor na agent forwarding (ssh -A): s ním smí server, na který se přihlašujete, používat Vašeho agenta. Kdo je na tom serveru root, může pak s Vaším klíčem pokračovat dál. Používejte to jen na serverech, kterým plně důvěřujete, nebo použijte ProxyJump (lekce 2.3).

Jeden klíč pro každé zařízení a přehled, kde jsou

Častá chyba: zkopírovat jeden soukromý klíč do notebooku, PC i telefonu. Když pak jedno zařízení ztratíte, musíte klíč všude vyměnit a všechna zařízení nastavit znovu. Lepší je:

  • vytvořit na každém zařízení vlastní klíč s jasným komentářem (-C "anna@telefoon");
  • dát všechny veřejné klíče do authorized_keys, jeden na řádek;
  • když zařízení ztratíte, odstranit jen ten jeden řádek.

Pravidelně kontrolujte, které klíče mají přístup:

anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)

Pokud tam najdete klíč, který neznáte, je to varovný signál (lekce 10.3). Útočníci si rádi vkládají vlastní klíč do authorized_keys, aby se mohli později vrátit.

Hardwarový klíč (FIDO2, například YubiKey) je také možnost. S ssh-keygen -t ed25519-sk je tajná část uložena přímo v klíči a při každém použití se ho musíte dotknout. Ukradený soubor je pak bezcenný. Je to pěkný krok navíc, ale pro začátek není nutný.

Ztratili jste soukromý klíč?

Pokud ztratíte svůj jediný soukromý klíč a přihlášení heslem je vypnuté, přes SSH se už nedostanete dovnitř. Proto:

  • mějte na serveru vždy alespoň dva klíče (například z notebooku a z PC);
  • vězte, jak funguje konzole Vašeho poskytovatele (lekce 1.2). Přihlašujete se v ní, jako byste k serveru připojili klávesnici, a funguje i bez SSH. U WebOké se jmenuje Konzole v obrazovce VPS; jiní poskytovatelé jí říkají VNC konzole, webová konzole nebo nouzová konzole.

V AlmaLinux a Rocky Linux

Vše v této lekci funguje stejně. Jedna past navíc: se zapnutým SELinux musí mít ~/.ssh správný bezpečnostní štítek. Pokud jste složku vytvořili ručně nebo zkopírovali a Váš klíč je ignorován, restorecon -Rv ~/.ssh to napraví.

Shrnutí

  • Pár klíčů se skládá ze soukromého klíče (zůstává u Vás) a veřejného klíče (jde na server, do ~/.ssh/authorized_keys).
  • Klíče vytvářejte pomocí ssh-keygen -t ed25519 na vlastním počítači, s passphrase; pro pohodlí používejte ssh-agent.
  • Na oprávněních záleží: ~/.ssh na 700 a authorized_keys na 600, jinak server Váš klíč ignoruje.
  • Jeden klíč pro každé zařízení, s jasným komentářem, abyste mohli jeden z nich zneplatnit.
  • Mějte druhý klíč a znejte konzoli svého poskytovatele jako nouzový vstup.

Kvíz

1. Který soubor můžete dát svému poskytovateli nebo kolegovi, abyste získali přístup k serveru?



2. Vložili jste svůj klíč do authorized_keys, ale server stále požaduje heslo. Jaká je častá příčina?



3. Proč chráníte svůj soukromý klíč pomocí passphrase?



4. Ukradli Vám notebook. Na serveru jsou tři klíče: z notebooku, PC a telefonu, každý s vlastním komentářem. Co uděláte?



5. Jaké je riziko ssh -A (agent forwarding) na server, kterému nedůvěřujete?



Úkol

Úkol O2.1: Vytvoření a použití klíče. Na svém vlastním počítači vytvořte klíč ed25519 s passphrase a jasným komentářem, nahrajte ho na svůj server (přes pole u poskytovatele, pomocí ssh-copy-id nebo ručně), zkontrolujte oprávnění a v novém okně se pomocí klíče přihlaste. Potom vyplňte otisk svého klíče (z ssh-keygen -lf ~/.ssh/id_ed25519.pub) a odpovězte na otázky, kde je uložen Váš soukromý klíč a co uděláte, když ho ztratíte. Program kontroluje jen to, zda má otisk správný tvar; zbytek je na Vás.

Úkol O2.1: Vytvoření a použití klíče

Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.




Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.

Doporučujeme k přečtení

Postupy v těchto článcích platí pro obrazovku VPS a panely WebOké; u jiných poskytovatelů to funguje podobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…