SSH je zkratkou anglických slov Secure Shell, čili doslova přeloženo "bezpečná příkazová řádka". Když zvážíme obě části do důsledků, vlastně ani jedna nemusí být za určitých okolností pravda. Protože bugy v programech na nás vyskakují "na každém rohu", i SSH v sobě čas od času obsahuje nějakou chybu, kterou je nutné rychle zazáplatovat, aby nebyla potenciálním zdrojem nebezpečí pro data umístěná na PC. Tedy ta první část o bezpečnosti sice platí, ale stejně jako všude jinde ve výpočetní technice se o svůj počítač musíme starat. Nejrozšířenější je SSH bezpochyby na Linuxu, i když existují SSH servery i pro jiné systémy.
Službu SSH také nemusíme použít jen na práci na příkazové řádce vzdáleného počítače, ale můžeme přes ní i kopírovat, mazat a přenášet soubory podobně jako přes FTP, jen bezpečněji. K zacházení se soubory pomocí SFTP se používají programy SCP (ne, to není Středisko cenných papírů;-), je to Secure File Copy), SFTP (viz. balík OpenSSH) nebo třeba WinSCP . Dokonce existuje i SSH server, který je omezen pouze na vzdálené zacházení se soubory (scponly) a nedovolí uživateli klasicky se vzdáleně připojit. Jedna z možností způsobu přenosu souborů přes SSH se nazývá SFTP, Secure FTP, což se nesmí zaměňovat s FTPS, šifrovanou formou klasického FTP protokolu fungující jinak než SFTP.
SSH během své krátké osmileté historie (jeho začátek se klade do roku 1995) dosáhlo velkého rozšíření a troufám si tvrdit, že ho využívají lidé po celém světě. Linuxového uživatele jako já láká říct, že ho znají všude, ale je bezpochyby hodně uživatelů Windows, kteří tuto zkratku nikdy neslyšeli. SSH bylo myšleno jako náhrada za nešifrované protokoly rlogin (Remote Login), rsh (Remote Shell, v jiné souvislosti také Restricted Shell, ale tento druhý pojem s SSH nesouvisí) a rcp (Remote File Copy). SSH2 (Secure Shell verze 2) byl přijat jako norma IETF v roce 1997, protože v něm byly opraveny chyby, které byly v SSH1.
Jak jsem už naznačil v prvním odstavci, k použití SSH potřebujeme dva počítače, hosta a klienta, mezi kterými probíhá komunikace. Můžete se přes SSH samozřejmě připojit z jednoho počítače na ten samý, ale v tom případě pro Vás SSH nebude představovat žádnou výhodu. Na hostitelském počítači musí být nainstalován SSH server a na klientském počítači klient. Mezi těmito dvěma programy pak probíhá komunikace pomocí SSH v takzvaném SSH tunnelu. SSH tunnel může běžet ve více verzích protokolu SSH, z nejznámějších můžu zmínit SSH 1, SSH 1.3, SSH 1.5 a SSH 2. Verze se od sebe mírně liší, každá opravuje některé vady předchozí verze. Protokol vždy používá některý z šifrovacích algoritmů, mezi které patří 3DES, AES nebo Blowfish (verze SSH nejsou vázané na určité šifrování). Vše, co je posílané mezi hostem a klientem, je na straně odesílajícího počítače zašifrováno a na straně přijímajícího počítače rozšifrováno (platí to samozřejmě pro oba směry). Z bezpečnostních důvodů se po určité době neaktivity jednoho z počítačů spojení přeruší, čemuž se dá zabránit posíláním null packetů, které nenesou žádnou informaci, pouze uchovávají spojení. Komunikaci zabezpečenou pomocí SSH není možné za použití klasických metod přečíst, bylo by nutné buď využít nějaký bug klienta nebo serveru nebo hrubou silou šifru zlomit.
Klientské programy pro přenášení souborů přes SSH jsem už probral ve druhém odstavci článku, proto se teď zaměřím jen na klienty pro samotný vzdálený shell. Z těch pro Windows bych určitě měl zmínit PuTTY, na kterém je postaveno WinSCP. PuTTY umí obsluhovat nejen SSH, ale i Rlogin a telnet. Hlavní uživatelskou výhodou PuTTY je stejný vzhled shellu jako skutečného shellu, nehýří barvičkami jako třeba TeraTerm, což je další z klientů. Klientské programy pro mnoho systémů (ale ne pro Windows) jsou součástí balíku OpenSSH, viz. další odstavec.
Ze serverových balíků zmíním jen podle mého názoru nejpoužívanější, OpenSSH postavený na šifrování OpenSSL, které lze šířit za podmínek licence GPL. OpenSSH bylo portováno pro mnoho systémů (např. Linux, Solaris, FreeBSD, NetBSD, AIX, IRIX, HP-UX), ale jeho "domovským systémem" je OpenBSD, jehož tvůrčí tým jsou také tvůrci OpenSSH. Celý balíček OpenSSH se skládá z klientských programů ssh, scp, sftp, serverového programu (daemona) sshd a přídavných programů ssh-add, ssh-agent, ssh-keysign, ssh-keyscan, ssh-keygen and sftp-server. Více o OpenSSH se dozvíte v dalším článku této série, který mu bude věnován.








