Zpět na blog

Konfigurace vašeho Linux serveru pro použití ověřování pomocí SSH klíčů

Konfigurace vašeho Linux serveru pro použití ověřování pomocí SSH klíčů

SSH na Linuxovém serveru

SSH, známý také jako secure shell, je protokol, který lze použít k připojení a komunikaci se serverem. Můžete se připojit ke svému Linuxovému serveru pro relaci terminálu pomocí tohoto šifrovaného protokolu. Pokud používáte OpenSSH server, existují primárně dva různé způsoby, jak provést proces ověření. Prvním z nich je standardní ověřování na základě hesla. Zde jednoduše použijete své uživatelské jméno a heslo k získání přístupu ke svému účtu. Druhým způsobem je nastavení Linuxového serveru pro ověřování pomocí SSH klíčů.

V této příručce se zaměříme na to, jak můžete nakonfigurovat svůj Linuxový server tak, aby jako primární způsob ověřování používal SSH klíče. Probereme také, proč jsou SSH klíče často upřednostňovány před obvyklým mechanismem ochrany heslem.

Co jsou SSH klíče?

SSH klíče jsou podobné přihlašovacím údajům, které byste použili k přihlášení ke svému účtu na serveru. Místo zadávání uživatelského jména a hesla použijete pár SSH klíčů, což je také přístupový údaj. Přestože jsou klíče kryptografické, musíte s nimi zacházet jako s ověřovacími údaji, protože to je účel, kterému slouží.

Typický SSH klíč se skládá ze dvou částí: autorizovaného klíče (authorized key) a identifikačního klíče (identity key). Autorizovaný klíč je veřejný klíč, který funguje v kombinaci s vaším soukromým identifikačním klíčem a umožňuje vám přístup k účtu. Veřejný klíč se nachází na vzdáleném serveru, ke kterému se chcete připojit pomocí SSH, a zůstává v souboru ~/.ssh/authorized_keys přidruženém k vašemu uživatelskému účtu. Identifikační klíče slouží k ověření vaší identity jako správného uživatele, aby bylo zajištěno, že k danému účtu bude mít přístup pouze oprávněný personál. Souhrnně se tyto klíče nazývají uživatelské klíče, protože ověřují identitu uživatele. Jakmile je server schopen ověřit oba klíče, zahájí se relace shellu za účelem provádění vašich příkazů.

Máte také hostitelské klíče (host keys) a relační klíče (session keys). Protokol ověřuje místní počítač, systém nebo server pomocí hostitelského klíče. Relační klíče pomáhají šifrovat datový tok přes připojení. Díky tomu je vaše relace a odpovídající aktivita mnohem bezpečnější a zajištěnější.

SSH klíče namísto ochrany heslem

Hlavním důvodem, proč je ověřování pomocí SSH klíčů vhodnější než ochrana heslem, je to, že druhá možnost vás může vystavit kybernetickým útokům. Většina lidí nepoužívá extrémně složitá hesla, aby si je pamatovali, když se potřebují přihlásit. V důsledku toho vzniká zranitelné místo. Mnoho útočníků používá hrubou sílu k prolomení relativně jednoduchého hesla a proniknutí do účtu. V dnešní době je to obzvláště snadné díky automatizaci a pokročilým hackerským technologiím.

SSH klíče naopak nabízejí mnohem bezpečnější způsob, jak získat přístup k vašemu účtu. Jak jsme již zmínili, tato metoda používá k ověření identity klienta veřejný a soukromý klíč. Zatímco veřejný klíč můžete sdílet s kýmkoli, soukromý klíč musíte udržovat v tajnosti. Při spárování veřejný klíč dešifruje soukromý klíč, aby ověřil vaši identitu. Ochranu můžete dále vrstvit přidáním přístupové fráze (passphrase) k páru klíčů. O přístupové frázi si povíme více dále v příručce. Nicméně i bez přístupové fráze je váš soukromý SSH klíč na vašem místním počítači v naprostém bezpečí. Síť nemá nikdy přímý přístup ke klíči, který je umístěn v omezeném adresáři a je doplněn o omezená oprávnění.

Generování SSH klíčů

Chcete-li vygenerovat pár SSH klíčů, musíte projít sadu nástrojů OpenSSH a najít ssh-keygen. Jedná se o speciální pomocný nástroj, který vám umožní vygenerovat pár SSH klíčů o velikosti přibližně 2048 bitů. Začněte spuštěním tohoto příkazu:

Tím se zobrazí následující zpráva:

Tato zpráva vygeneruje soukromý klíč s názvem id_rsa a veřejný klíč s názvem id_rsa.pub. V tomto okamžiku si můžete vybrat, kam chcete klíč umístit. Doporučujeme ponechat výchozí umístění stisknutím klávesy Enter. Ponechání výchozího umístění zajistí, že server automaticky vyhledá a ověří klíče, kdykoli se pomocí tohoto systému přihlásíte. Výchozí umístění je adresář ~/.ssh v domovském adresáři. Pokud dáváte přednost výběru jiného místa, zadejte jeho umístění.

Přepisování starších SSH klíčů

Je důležité si uvědomit, že v systému můžete mít v daný okamžik pouze jeden pár SSH klíčů. To znamená, že pokud jste v systému dříve vygenerovali a uložili pár klíčů, zobrazí se následující zpráva:

Chcete-li pokračovat v vytváření a ukládání nového páru SSH klíčů, musíte smazat ten stávající. Pamatujte: pokud přepíšete klíč již uložený na disku, nebudete jej moci nadále používat pro účely ověřování. Jedná se o nevratný proces, proto se ujistěte, že jste si naprosto jisti, že chcete starý pár klíčů přepsat.

Nastavení přístupové fráze

Jakmile nastavíte klíče v adresáři, budete dotázáni, zda chcete zadat přístupovou frázi:

Přístupová fráze je volitelná – můžete se rozhodnout ji přeskočit. Přidává však další vrstvu zabezpečení pro váš soukromý klíč tím, že jej zašifruje na disku. Pokud se rozhodnete přístupovou frázi použít, budete ji muset zadat správně pokaždé, když se pokusíte přihlásit pomocí tohoto páru SSH klíčů:

Nakonec byste nyní měli mít své SSH klíče, které můžete použít k ověření klienta.

Vložení vašeho SSH klíče do vašeho serverového účtu

Před použitím klíčů k ověření je nutné vložit veřejný klíč na vzdálený Linux server. Dále vám ukážeme, jak to udělat při vytváření vašeho serveru CloudSigma. Nejprve musíte najít svůj veřejný SSH klíč, abyste jej mohli zkopírovat a vložit. Pokud jste k vygenerování páru SSH klíčů použili výše uvedenou metodu, veřejný klíč najdete zadáním následujícího příkazu:

To povede k tomu, že se veřejný SSH klíč zobrazí takto:

Zkopírujte si tuto hodnotu pro pozdější použití. Při vytváření serveru u CloudSigma máte možnost přidat SSH klíč poté, co vyberete velikost serveru a obraz operačního systému:

single server creation

Klikněte na Přidat a vložte to, co jste zkopírovali, abyste vložili SSH klíč do svého serveru. Výsledkem bude, že při každém spuštění serveru již bude tento SSH klíč integrován.

Kopírování veřejného klíče na stávající server

Zatímco výše uvedená metoda funguje při vytváření nového serveru, je možné vložit SSH klíč do již existujícího serveru? Odpověď zní ano a existuje několik způsobů, jak toho dosáhnout, v závislosti na tom, jaké nástroje máte k dispozici.

Použití SSH-Copy-ID

Toto je nejjednodušší a nejsnadnější způsob, jak zkopírovat veřejný klíč. Vše, co potřebujete, je nástroj ssh-copy-id, který najdete ve standardní sadě OpenSSH. Než však tuto metodu použijete, ujistěte se, že je na vašem serveru aktivováno ověřování pomocí hesla. Chcete-li klíč zkopírovat, použijete syntaxi ssh-copy-id a poté zadáte vzdáleného hostitele, ke kterému se chcete připojit. Budete také muset specifikovat účet, ke kterému se připojujete. K účtu musíte mít přístup chráněný heslem, aby se váš klíč zkopíroval na správné místo. Příkaz by měl vypadat takto:

To může vést k tomu, že se na vaší obrazovce objeví zpráva podobná této:

K tomu obvykle dochází, pokud se k tomuto konkrétnímu vzdálenému hostiteli připojujete poprvé. Znamená to jednoduše, že počítač hostitele nerozpoznal. Stačí napsat „yes“ a stisknout Enter. Jakmile tak učiníte, nástroj prohledá účet a vyhledá váš veřejný klíč. Po jeho nalezení vás požádá o zadání hesla k účtu:

Poté můžete zadat své heslo. Po připojení k vašemu účtu nástroj zkopíruje obsah klíče ~/.ssh/id_rsa.pub a vloží jej do souboru authorized_keys v adresáři ~/.ssh ve vašem vzdáleném účtu. Poté se zobrazí následující zpráva:

To znamená, že jste úspěšně zkopírovali svůj veřejný klíč na svůj stávající vzdálený server.

Použití SSH

Jedná se o poměrně konvenční způsob kopírování veřejného klíče na server. Je lepší jej použít, pokud nemáte přístup k nástroji ssh-copy-id. Opět platí, že musíte mít k účtu přístup chráněný heslem. V podstatě jde o to, že obsah veřejného klíče vypíšete na svém počítači a přenesete jej na vzdálený server prostřednictvím navázaného SSH připojení. Příkaz, který k tomuto účelu použijete, by měl vypadat následovně:

Jak vidíte, určili jsme, že klíč by měl být umístěn v souboru authorized_keys v adresáři ~/.ssh na serveru. Použití symbolu >> také zajišťuje, že klíče přidáváme, místo abychom je přepisovali. Po spuštění příkazu se může zobrazit tato zpráva:

Podobně jako u předchozí zprávy to znamená, že počítač nerozpoznal vzdáleného hostitele. Napište „yes“ a stiskněte Enter pro pokračování. Nyní zadáte heslo k účtu:

Jakmile bude heslo ověřeno, klíč se zkopíruje do souboru ve vašem uživatelském účtu, jak bylo určeno.

Ručně

V případě, že nemáte přístup ke svému účtu na vzdáleném serveru chráněný heslem, můžete veřejný klíč zkopírovat ručně. Cílem je dostat hodnotu ze souboru id_rsa.pub do souboru ~/.ssh/authorized_keys na vašem vzdáleném zařízení. Jak již víme, hodnotu klíče id_rsa.pub si můžeme zobrazit pomocí tohoto příkazu:

Obsah vašeho veřejného klíče SSH se zobrazí takto:

Dále musíte získat přístup ke svému účtu na vzdáleném hostiteli jakýmikoli dostupnými prostředky. Po přihlášení zkontrolujte, zda existuje adresář ~/.ssh. Pokud ne, můžete jej vytvořit spuštěním následujícího příkazu:

Nyní můžete pomocí tohoto příkazu přidat obsah souboru id_rsa.pub do souboru authorized_keys v tomto adresáři ~/.ssh na vzdáleném serveru:

Místo psaní „public_key_string“ v tomto příkazu budete muset zadat obsah klíče, který jste dříve získali spuštěním příkazu cat ~/.ssh/id_rsa.pub.

Ověření pomocí vašeho SSH klíče

Nyní se můžete snadno přihlásit ke svému účtu pouze pomocí svých SSH klíčů. To znamená, že k přístupu k účtu na serveru již nepotřebujete heslo. Použijete přihlašovací údaje, které obvykle používáte pro účely přihlášení:

To může způsobit, že se zobrazí následující zpráva:

Pokud uvidíte tuto zprávu, nemějte obavy. Znamená to pouze, že lokální systém nedokáže rozpoznat vzdáleného hostitele. K tomu obvykle dochází, pokud se k hostiteli připojujete úplně poprvé. Stačí pouze napsat „yes“ a stisknout Enter. Pokud se vrátíme k některým z předchozích kroků, jestliže jste použili přístupovou frázi (passphrase), zde ji budete muset zadat. Pokud ne, přihlásíte se ke svému účtu ihned po ověření SSH klíčů. Tím se spustí nová relace shellu prostřednictvím vašeho aktuálního účtu na lokálním počítači.

Jak zakázat ověřování heslem na vašem serveru?

Nyní, když už víte, jak nastavit SSH klíče, musíte zakázat ověřování heslem. I když můžete k ověření použít SSH klíče, stále jste zranitelní vůči útokům hrubou silou (brute force), pokud je proces ověřování heslem aktivní. Před zakázáním mechanismu ověřování heslem se ujistěte, že konfigurace ověřování založeného na SSH klíči je nastavena pro účet root na serveru nebo že nakonfigurovaný účet má přístup sudo. Důvodem pro toto ověření je jistota, že si zachováte administrátorský přístup k účtu i po zakázání hesel. Nyní můžete tento SSH klíč použít k přihlášení ke svému serverovému účtu. Dalším krokem je otevření konfiguračního souboru SSH démona:

Zde musíte vyhledat následující direktivu:

Tento řádek musíte odkomentovat a změnit hodnotu na „no“, následovně:

Tímto krokem zakážete ověřování založené na hesle. Po dokončení soubor jednoduše uložte a zavřete. Nakonec musíte restartovat zařízení, aby se změny projevily. Pokud používáte zařízení se systémem Ubuntu nebo Debian, můžete k zakázání přístupu pomocí hesla použít také následující příkaz:

Chcete-li se ujistit, že váš démon neboli sshd povoluje na serveru pouze ověřování založené na SSH na strojích s CentOS nebo Fedora, použijte příkaz:

Závěr

Jakmile dokončíte všechny tyto kroky, měli byste mít na svém serveru nakonfigurované a funkční ověřování založené na SSH klíči. Nyní si můžete být jisti, že jsou vaše servery v bezpečí a chráněny!

Přejeme příjemnou práci s počítačem!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.