Seriál SSH: Základy, práce s SSH servery, klienty a klíči

4. května 2015

SSH je zabezpečený protokol používaný jako primární prostředek pro vzdálené připojování k serverům Linuxu. Poskytuje textově založené rozhraní tím, že využije vzdálený shell. Po připojení se všechny příkazy, které píšete v lokálním terminálu, odesílají na vzdálený server a tam se i realizují.

 

Přinášíme vám nový seriál článků o SSH. V tomto seriálu probereme některé běžné způsoby, jimiž se připojujete s SSH, abyste dosáhli požadovaného nastavení. Seriál můžete používat jako stručnou referenční příručku, když se potřebujete dozvědět, jakými různými způsoby se můžete připojovat k serveru nebo ho konfigurovat. Jednotlivé díly a poté celý seriál najdete na Průvodce nastavením SSH protokolu na server.

Přehled SSH

Připojení prostřednictvím SSH je nejběžnějším druhem připojení k vzdálenému serveru Linuxu. SSH je zkratka pro Secure Shell, poskytuje bezpečný a dobře chráněný způsob vzdáleného vykonávání příkazů, provádění změn a konfigurování služeb. Když se připojujete prostřednictvím SSH, přihlašujete se pomocí určitého účtu, který existuje na daném vzdáleném serveru.

Jak SSH pracuje

Jakmile se připojíte prostřednictvím SSH, budete nasměrování do jisté relace shellu, což je textově založené rozhraní, v němž můžete komunikovat se serverem. Po dobu trvání SSH relace se všechny příkazy, které napíšete do lokálního terminálu, odesílají prostřednictvím zašifrovaného SSH tunelu a vykonávají na serveru.

SSH připojení se implementuje podle modelu klient-server. To znamená, že aby bylo možné zřídit SSH připojení, musí na vzdáleném stroji běžet software, kterému se říká SSH démon. Tento software naslouchá připojením na specifickém síťovém portu, autentizuje požadavky (ověřuje jejich pravost), a pokud uživatel poskytl správné doklady, vytvoří patřičné prostředí.

Na uživatelově počítači musí být také SSH klient. Jedná se o software, který ví, jak komunikovat pomocí protokolu SSH, a jemuž lze dodat informace o vzdáleném houstu, uživatelské jméno a doklady, které se mají předat za účelem autentizace. Klient může také specifikovat jisté podrobnosti o typu připojení, jaké by rád zřídil.

Jak SSH autentizuje uživatele

Klienti jsou obvykle autentizováni pomocí hesel (méně bezpečné, nedoporučuje se) nebo pomocí SSH klíčů, což je velmi bezpečné.

Přihlášení založená na heslu jsou zašifrovaná a noví uživatelé je snadno pochopí. Bohužel, automatizovaní roboti a uživatelé se zákeřnými úmysly se často opakovanými pokusy snaží autentizovat k účtům, které povolují přihlášení založené na hesle, což může vést k prolomení zabezpečení. Z tohoto důvodu doporučujeme pro většinu konfigurací vždy připravit autentizaci založenou na SSH.

SSH klíče tvoří sada odpovídajících kryptografických klíčů, které se mohou používat k autentizaci. Každá sada obsahuje veřejný (public) a privátní klíč. Veřejný klíč lze bez obav volně sdílet, zatímco privátní klíč musí být pečlivě chráněn a nesmí být nikdy nikomu vystaven.

Když se chce uživatel autentizovat pomocí SSH klíčů, musí mít na lokálním počítači dvojici SSH klíčů. Na vzdáleném serveru se musí veřejný klíč zkopírovat do souboru, který se nachází uvnitř domovského adresáře uživatele, do ~/.ssh/authorized_keys. Tento soubor obsahuje seznam veřejných klíčů, na každém řádku jeden, které jsou autorizovány pro přihlašování k tomuto účtu.

Když se nějaký klient připojuje k tomuto houstu a přeje si použít autentizaci přes SSH klíč, informuje o tomto svém záměru server a sdělí mu, který veřejný klíč má použít. Server pak zkontroluje, zda je ten veřejný klíč v souboru authorized_keys, vygeneruje náhodný řetězec a zašifruje ho pomocí tohoto veřejného klíče. Tuto zašifrovanou zprávu je možné dešifrovat pouze se sdruženým privátním klíčem. Server odešle tuto zašifrovanou zprávu klientovi, aby otestoval, zda skutečně disponuje sdruženým privátním klíčem.

Když klient tuto zprávu obdrží, dešifruje ji pomocí privátního klíče a zkombinuje ten náhodný řetězec s dříve dohodnutým ID relace. Pak vygeneruje MD5 hash (pozn. př. Jedna z funkcí algoritmu Message-Digest, ze vstupu libovolné délky vytváří výstup pevné délky, kterému se říká hash.této hodnoty a přenese ji zpět na server.) Server už má od dřívějška původní zprávu a ID relace, takže je může porovnat s MD5 hashem vygenerovaným těmito hodnotami, a určí, že tento klient musí mít privátní klíč.

Když teď víte, jak SSH pracuje, můžeme začít probírat konkrétní příklady, v nichž předvádíme různé způsoby práce s SSH.V dalších dílech si ukážeme například generování SSH klíče, provedeme správnou konfiguraci jak na straně serveru, tak i na straně klienta. A mnoho dalšího. Přihlašte se k odběru novinek na nenechte si ujít další pokračování seriálu o SSH. Můžete nás také sledovat na Facebooku, či Twitteru.

Co vše byste chtěli vědět o SSH? Seriál ještě není uzavřený. Přidejte vaše přání do komentáře pod článek a v případě zajímavého dotazu přidáme nějaké díly navíc.

logo-zonercloudČlánek byl přeložen ve spolupráci se ZonerCloud.cz – výkonné a levné VPS servery do 55 sekund.

Napsal: Justin Elingwood
Přeložil RNDr. Jan Pokorný
Znění původního článku najdete zde

Creative Commons License

Štítky: SSH seriál

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *