SSH je jako tajný vchod do vašeho serveru – bezpečný, šifrovaný a přitom dostupný prakticky odkudkoliv. Pokud pracujete s Linuxem nebo spravujete servery, bez SSH se prostě neobejdete.
Připravili jsme pro vás stručného, ale výživného průvodce. Takového, který nezahltí, ale pomůže. Můžete si ho uložit, zkopírovat nebo použít jako tahák, když si zrovna nevzpomenete, co je ssh-keygen a proč nepatří soukromý klíč na veřejnost.
Jak používat tuto příručku:
- Následující části použijte podle toho, čeho se snažíte dosáhnout. Většina oddílů není podmíněna žádným jiným, takže následující příklady můžete používat samostatně.
- K vyhledání potřebných oddílů použijte nabídku Obsah na levé straně této stránky (při široké šířce stránky) nebo funkci vyhledávání (CTRL+F) v prohlížeči.
- Zkopírujte a vložte uvedené příklady příkazového řádku, přičemž zvýrazněné hodnoty nahraďte vlastními.
Co je to vlastně SSH?
SSH (Secure Shell) je bezpečný protokol pro vzdálené připojení k serverům – obvykle těm linuxovým. Umožňuje ovládat server přes příkazový řádek, jako byste seděli přímo u něj.
Jakmile se připojíte, všechny příkazy, které napíšete do svého terminálu, jsou šifrovaně odeslány na server a tam provedeny.
Jak tenhle průvodce používat?
- Potřebujete rychle zjistit, jak vygenerovat SSH klíč nebo připojit server s jiným portem? Mrkněte rovnou na konkrétní část. Fungují samostatně.
- Použijte klidně klávesovou zkratku CTRL+F a najděte si, co právě řešíte.
- Všechny příklady můžete kopírovat. Jen nezapomeňte nahradit názvy serverů, uživatelů nebo portů těmi vlastními.
SSH pod pokličkou: Jak funguje a co je potřeba
SSH v kostce:
- Na serveru musí běžet tzv. SSH démon – naslouchá na portu (většinou 22) a čeká na připojení.
- Na vašem počítači je SSH klient – ten odesílá přihlašovací údaje a navazuje šifrované spojení.
- Přihlašujete se buď pomocí hesla (nedoporučujeme), nebo bezpečněji přes SSH klíče.
Ověření přes SSH klíče
Proč raději klíče než heslo?
- Heslo je sice jednoduché, ale snadno zneužitelné (automatizované útoky nejsou výjimka).
- SSH klíče jsou bezpečnější – jde o dvojici souborů: veřejný klíč (ten klidně zveřejníte) a soukromý klíč (ten nikomu nedávejte!).
Generování SSH klíčů
Jak vytvořit SSH klíč
Na svém počítači spusťte:
ssh-keygen
Pak jen:
- Potvrďte výchozí umístění (~/.ssh/id_rsa)
- Zvolte přístupovou frázi (nebo ENTER pro žádnou)
- A je to!
Výsledek?
- ~/.ssh/id_rsa – soukromý klíč (držte v bezpečí!)
- ~/.ssh/id_rsa.pub – veřejný klíč (můžete posílat dál)
Silnější klíč? Použijte 4096 bitů:
ssh-keygen -b 4096
Práce s přístupovou frází
Chcete ji změnit nebo odstranit?
ssh-keygen -p
A dál postupujte podle výzev. Pozor: bez znalosti původní fráze ji nezměníte.
VPS Centrum
Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.
Jak zjistit otisk klíče (fingerprint)
ssh-keygen -l
Tím ověříte, že klíč, který máte, je opravdu ten, který chcete použít.
Kopírování veřejného klíče na server
1) Nejjednodušeji: pomocí ssh-copy-id
Pokud máte přístup na server přes heslo:
ssh-copy-id username@remote_host
2) Ručně, ale rychle:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
3) Úplně ručně:
Zkopírujte výstup z:
cat ~/.ssh/id_rsa.pub
…a vložte ho do souboru ~/.ssh/authorized_keys na serveru.
Připojení k serveru přes SSH
Základní příkaz:
ssh username@remote_host
Jiný port?
ssh -p 4444 username@remote_host
TIP: Nechcete to zadávat pokaždé? Upravte soubor ~/.ssh/config:
Host muj-server
HostName remote_host
Port 4444
User username
SSH agent: bez neustálého zadávání přístupové fráze
eval $(ssh-agent)
ssh-add
Agent si zapamatuje přístupovou frázi během vaší terminálové relace.
Předání přihlašovacích údajů mezi servery
Chcete se přihlásit na další server z jiného serveru?
ssh -A username@remote_host
To umožní tzv. „agent forwarding“ – ověření přes váš lokální SSH klíč i z jiného stroje.
Pokročilá nastavení na serveru
Zakázání přihlášení heslem
V /etc/ssh/sshd_config upravte:
PasswordAuthentication no
A restartujte SSH:
systemctl restart sshd
Změna portu SSH
V souboru /etc/ssh/sshd_config najděte:
#Port 22
Port 4444
Omezení, kdo se může přihlásit
Pomocí uživatelů:
AllowUsers user1 user2
Nebo pomocí skupin:
AllowGroups sshmembers
A pak přidejte uživatele do skupiny:
groupadd -r sshmembers
usermod -a -G sshmembers user1
Freelo - Nástroj na řízení úkolů a projektů
Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.
Zakázání přihlášení jako root
PermitRootLogin no
Uložte, restartujte SSH – a root bude mít smůlu (oprávněně!).