Jak vytvořit a nainstalovat klíče SSH z prostředí Linux

Zabezpečení v kyberprostoru byste neměli brát na lehkou váhu. Pro vzdálený přístup je vhodné používat SSH klíče. Jedná se o bezpečnější metodu připojení než klasická hesla. V následujícím textu si ukážeme, jak SSH klíče generovat, instalovat a následně používat v operačním systému Linux.

Problémy s hesly

Secure Shell (SSH) představuje šifrovaný protokol, který se používá pro přihlašování k uživatelským účtům na vzdálených počítačích, které pracují pod Linuxem nebo Unixem. Tyto uživatelské účty jsou obvykle zabezpečeny pomocí hesel. Při přihlašování ke vzdálenému stroji musíte zadat uživatelské jméno a heslo pro konkrétní účet.

Hesla jsou nejrozšířenější metodou pro zabezpečení přístupu k výpočetním zdrojům, ovšem i přes to má zabezpečení založené na heslech své slabiny. Uživatelé často volí slabá hesla, hesla sdílejí, používají stejná hesla na více systémech a podobně.

SSH klíče jsou mnohem bezpečnější variantou a po prvotním nastavení se používají stejně snadno jako hesla.

Proč jsou SSH klíče bezpečné?

SSH klíče se vytváří a používají ve dvojicích. Tyto dva klíče jsou vzájemně propojené a kryptograficky zabezpečené. Jeden klíč je veřejný a druhý soukromý. Jsou spojené s vaším uživatelským účtem. Pokud používá SSH klíče více uživatelů na jednom počítači, každý z nich má svou vlastní dvojici klíčů.

Váš soukromý klíč se (většinou) ukládá do vašeho domovského adresáře, zatímco veřejný klíč se instaluje na vzdálený počítač, ke kterému se chcete připojovat.

Váš soukromý klíč musí být v bezpečí. Pokud by se dostal do nesprávných rukou, byli byste v situaci, jako kdyby někdo znal vaše heslo. Rozumným – a velmi doporučeným – opatřením je, abyste váš soukromý klíč zašifrovali pomocí silné přístupové fráze.

Veřejný klíč můžete sdílet, aniž byste ohrozili své zabezpečení. Z veřejného klíče není možné zjistit, jaký je soukromý klíč. Soukromý klíč dokáže šifrovat zprávy, které dokáže dešifrovat pouze ten samý soukromý klíč.

Když se pokusíte připojit, vzdálený počítač použije kopii vašeho veřejného klíče k vytvoření zašifrované zprávy. Tato zpráva obsahuje ID relace a další metadata. Zprávu dokáže dešifrovat pouze počítač, který má odpovídající soukromý klíč, tedy váš počítač.

Váš počítač získá přístup k vašemu soukromému klíči a zprávu dešifruje. Následně odešle vlastní zašifrovanou zprávu zpět na vzdálený stroj. Tato zpráva mimo jiné obsahuje ID relace, které bylo přijato ze vzdáleného počítače.

Vzdálený počítač tak má jistotu, že jste tím, za koho se vydáváte, protože pouze váš soukromý klíč dokázal extrahovat ID relace ze zprávy, kterou odeslal vašemu počítači.

Ověření přístupu ke vzdálenému počítači

Před tím, než se začnete zabývat SSH klíči, ověřte si, že se dokážete ke vzdálenému počítači připojit a přihlásit. Tímto krokem si ověříte, že máte na vzdáleném počítači platný účet s daným uživatelským jménem a heslem, a že jsou vaše přihlašovací údaje správné.

Nezkoušejte nastavovat SSH klíče dřív, než si potvrdíte, že se k cílovému počítači dokážete připojit pomocí hesla.

V tomto příkladu je uživatel s uživatelským účtem „dave“ přihlášený k počítači „wdzwdz“. Nyní se bude připojovat k jinému počítači, který se jmenuje „Sulaco“.

Zadá tento příkaz:

ssh [email protected]

Systém si vyžádá heslo, které uživatel zadá a je úspěšně připojen k počítači Sulaco. V příkazovém řádku se zobrazí potvrzení úspěšného připojení.

To je vše, co potřebujeme. Uživatel dave se nyní může odpojit od počítače Sulaco pomocí příkazu „exit“:

exit

Zobrazí se potvrzení o odpojení a příkazový řádek se vrátí na „[email protected]“.

Generování páru SSH klíčů

Následující postup byl testován na distribucích Linuxu Ubuntu, Fedora a Manjaro. Ve všech případech byl proces identický a na žádném z testovacích strojů nebylo nutné instalovat žádný další software.

Pro vygenerování SSH klíčů zadejte příkaz:

ssh-keygen

Spustí se proces generování. Budete dotázáni, kam chcete SSH klíče uložit. Stisknutím klávesy Enter potvrdíte výchozí umístění. Oprávnění k tomuto adresáři zaručují, že klíče může používat pouze váš účet.

Nyní budete požádáni o přístupovou frázi. Doporučujeme zde zadat silnou přístupovou frázi. A nezapomeňte si ji! Můžete stisknout Enter a přístupovou frázi nepoužít, což ale není dobrý nápad. Přístupová fráze sestavená ze tří nebo čtyř nesouvisejících slov vytvoří velmi silnou frázi.

Systém vás požádá o opětovné zadání stejné přístupové fráze pro ověření, že jste zadali to, co jste měli v úmyslu.

SSH klíče jsou nyní vygenerovány a uloženy.

Zobrazený „randomart“ si můžete ignorovat. Některé vzdálené počítače vám ho mohou ukázat při každém připojení. Smyslem je, abyste si všimli, zda se tento obrázek změní, a měli podezření na podvržené připojení, protože by to znamenalo, že SSH klíče na serveru byly změněny.

Instalace veřejného klíče

Pro správnou funkčnost je nutné váš veřejný klíč nainstalovat na vzdálený počítač (v našem případě Sulaco), aby si byl stroj vědom, že daný veřejný klíč patří vám.

To provedeme pomocí příkazu „ssh-copy-id“. Tento příkaz vytvoří připojení ke vzdálenému počítači jako klasický příkaz ssh, ale místo toho, aby vám umožnil se přihlásit, přenese váš veřejný SSH klíč.

ssh-copy-id [email protected]

I když se nepřipojujete ke vzdálenému počítači pro přihlášení, musíte se ověřit pomocí hesla. Vzdálený počítač potřebuje zjistit, ke kterému uživatelskému účtu nový SSH klíč patří.

Heslo, které zde zadáváte, je heslo k uživatelskému účtu, ke kterému se přihlašujete. Nejedná se o heslo, které jste vytvořili při generování SSH klíčů.

Po ověření hesla příkaz „ssh-copy-id“ přenese váš veřejný klíč na vzdálený počítač.

Budete přesměrováni zpět do příkazového řádku vašeho počítače. Nepřipojíte se ke vzdálenému stroji.

Připojení pomocí SSH klíčů

Zkusme se tedy připojit ke vzdálenému počítači.

ssh [email protected]

Protože proces připojení vyžaduje přístup k vašemu soukromému klíči, a protože jste ochránili své SSH klíče přístupovou frází, budete ji muset zadat, aby se připojení mohlo uskutečnit.

Zadejte svoji přístupovou frázi a klikněte na tlačítko Odemknout.

Jakmile zadáte svou přístupovou frázi v aktuální relaci terminálu, nebudete ji muset zadávat znovu, dokud je toto okno terminálu otevřené. Můžete se připojovat a odpojovat od libovolného počtu vzdálených relací, aniž byste museli opakovaně zadávat heslo.

Můžete zaškrtnout volbu „Automaticky odemknout tento klíč při přihlášení“, ale snížíte tím své zabezpečení. Pokud ponecháte počítač bez dozoru, kdokoliv se může připojit ke vzdáleným počítačům, které mají váš veřejný klíč.

Po zadání přístupové fráze budete připojeni ke vzdálenému počítači.

Pro kompletní ověření procesu se odpojte pomocí příkazu „exit“ a znovu se připojte ke vzdálenému počítači ze stejného okna terminálu.

ssh [email protected]

Nyní budete připojeni ke vzdálenému počítači bez nutnosti zadávat heslo nebo přístupovou frázi.

Žádná hesla a vylepšené zabezpečení

Odborníci na kybernetickou bezpečnost hovoří o takzvaném bezpečnostním tření. Jde o drobnou nepříjemnost, se kterou se musíte smířit, abyste dosáhli lepšího zabezpečení. Přijetí bezpečnější metody obvykle vyžaduje krok nebo dva navíc. A to se většině lidí nelíbí. Ve skutečnosti dávají přednost nižšímu zabezpečení, ale bez tření. To je lidská přirozenost.

S SSH klíči získáte zvýšenou úroveň zabezpečení a větší pohodlí. To je jednoznačně výhodná situace.