Hrátky z řádky: používáme ssh

Petr Macek 5. 5. 2008

Vzdálené ovládání počítače pomocí ssh je v unixovém světě jistě nejpoužívanější způsob. Jeho výhodou je nenáročnost na zdroje a především rozšířenost. Dnes si ukážeme, jak se takové ssh správně používá, jak se přihlašovat pomocí klíčů a také třeba to, jak použít ssh k zálohování dat ze serveru.

Kdo pracuje s linux/unix systémy, určitě denně používá ssh. Trochu z jeho historie – ssh vzniklo v roce 1995 jako náhrada starších programů telnet, rlogin, rsh, … Ty už v té době přestaly dostačovat – chybělo šifrování, kontrola integrity dat. Na Helsinské univerzitě vypracoval Tatu Ylönen protokol ssh verze 1. Pak se to trochu zkomplikovalo, protože autor protokol uzavřel. Jenže ssh už v té době používala spousta lidí, a proto vzniklo openSSH, které asi používá většina z nás. Za nějakou dobu vznikla verze 2, která se používá dnes. Ssh je tedy náhradou výše zmíněných programů, ale nabízí i několik věcí navíc, např. volitelná komprese, tunely,… Ssh dále využívají třeba protokoly scp a sftp. Ssh pracuje na TCP portu 22.

Dnes se podíváme na základní věci – přihlašování heslem, klíčem, rychlé přihlašování, vykonání příkazu na vzdáleném stroji a jak toho využít. Příště si pak povíme o konfiguraci sshd, scp, sftp, jak spolupracovat s komerčním SSH a další věci.

Dnes se budeme věnovat pouze openssh a verzi 2, pokud budeme používat klíče, bude se jednat o dsa.

Jakou verzi používáme, můžeme zjistit dvěma způsoby:

[pm@minastirith pm]$ ssh -V
OpenSSH_4.2p1 FreeBSD-20050903, OpenSSL 0.9.7e-p1 25 Oct 2004

[pm@minastirith pm]$ telnet www.mujserver.cz 22
Trying 195.18.214.5
Connected to www.mujserver.cz.
Escape character is '^]'.
SSH-2.0-OpenSSH_4.5p1 FreeBSD-20061110

Běžné přihlášení ( ssh www.mujserver.cz nebo ssh franta@www.mujserver.cz) zná asi každý. Nikoho ale asi nebaví psát takhle dlouhý příkaz častěji. Pomoc je snadná. Ve svém domovském adresáři máte (nebo si jej vytvořte) adresář .ssh. Práva na něj a jeho obsah by měl mít jen jeho vlastník a nikdo jiný. Jsou v něm uložené důležité údaje. Ssh např. při přihlašování klíčem vlastnictví souborů ověřuje a odmítne spojení, pokud nejste vlastník souborů:

pm@pm-desktop:~$ ls -al .ssh/
drwx------  2 pm pm   4096 2008-04-17 16:03 .
drwxr-xr-x 60 pm pm   4096 2008-04-29 15:46 ..
-rw-------  1 pm pm   2402 2008-04-17 16:03 config
-rw-------  1 pm pm    668 2004-12-09 16:26 id_dsa
-rw-------  1 pm pm    598 2004-12-09 16:26 id_dsa.pub
-rw-------  1 pm pm 141426 2008-04-24 08:54 known_hosts

Nejprve nás bude zajímat soubor config. Malá ukázka:

Host server1
   Hostname server1.firma2.cz
   User pm

Host doma
   Hostname mail.doma.cz
   User pm
   Compression no

Host *
   Compression yes
   ForwardAgent yes
   ForwardX11 yes
   RhostsAuthentication no
   RhostsRSAAuthentication no
   RSAAuthentication yes
   TISAuthentication no
   PasswordAuthentication yes
   FallBackToRsh no
   UseRsh no
   BatchMode no
   StrictHostKeyChecking no
   IdentityFile ~/.ssh/identity
   Port 22
   EscapeChar ~

Formát je jednoduchý, vše za host xxx jsou parametry platné pro server xxx. Ukončeno je to dalším řádkem host yyy nebo koncem souboru. Takže máme nastavené dva servery a potom ještě výchozí parametry týkající se ostatních. Pokud se chceme přihlásit na server doma, stačí zadat jen:

[pm@minastirith pm]$ ssh doma

V tom případě se použije uživatel pm a nebude se používat komprese. Kdo je maximalista a i tohle mu přijde dlouhé, může si vytvořit třeba skript nebo alias:

export alias d='ssh pm@mail.doma.cz'

Zadávat heslo nás také pokaždé nebude bavit nebo může nastat situace, kdy se na stroj chceme přihlašovat neinteraktivně. Tady na řadu přichází klíče. Princip je snadný. Vygenerujeme si dvojici klíčů – soukromý a veřejný. Dělá se to pomocí příkazu:

[pm@minastirith pm]$ ssh-keygen -t dsa

Při generování se nás program zeptá na tzv. passphrase. Když ji vyplníte, zvýšíte tím sice bezpečnost, ale opět budete muset zadávat nějaké heslo. Takže passphrasi nevyplníme. Teď máme vygenerované dva soubory. id_dsa je náš privátní klíč, a ten si musíme udržet schovaný před světem. Naopak soubor id_dsa.pub musíme rozdistribuovat na stroje, kam se chceme hlásit. Jedna z možných cest:

[pm@minastirith pm]$ cat id_dsa.pub | ssh pm@mail.doma.cz 'cat >> /home/pm/.ssh/authorized_keys'

Když použijeme výše zmíněný soubor config, stačí už jen zadat:

[pm@minastirith pm]$ ssh doma

a jsme přihlášeni, ověření uživatele se provedlo pomocí klíče. V případě problému s klíčem bude patrně nabídnuto ověření heslem. Toto už ale záleží na konfiguraci sshd.

Výše zmíněný způsob přidání klíče na druhý stroj je další věc, o které se chci zmínit. Jste asi zvyklí, že po přihlášení se spustí shell a můžete pracovat. V některých případech, ale toto ani nepotřebujeme, chceme třeba jen spustit příkaz a dozvědět se výsledek (v podstatě funkce programu rsh). Stačí za přihlášení zadat požadovaný příkaz:

pm@pm-desktop:~/.ssh$ ssh pm@mail.doma.cz uname -a
FreeBSD mail.doma.cz 6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Mon May 21 11:33:00 CEST 2007     root@mail.doma.cz:/usr/obj/usr/src/sys/KERNEL_MAIL_DOMA_CZ  i386

Často takovou věc používám ke sběru dat ze serverů. Je to snadné, protože ssh je všude a zároveň bezpečné. Dá se to například použít k jednoduchému zálohování. Když chceme třeba zazálohovat konfiguraci serveru, svou cron tabulku a přenést nějakou MySQL databázi na jiný server:

[pm@minastirith pm]$ ssh doma tar -cf - /etc | tar -xf -

[pm@minastirith pm]$ ssh doma crontab -l > zaloha_crontab

[pm@minastirith pm]$ ssh doma mysqldump -uuser -pheslo db1 | mysql -uuser -pheslo zaloha_db1
Našli jste v článku chybu?
Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

Podnikatel.cz: Zůstat na Heurece je čiré bláznovství

Zůstat na Heurece je čiré bláznovství

Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

DigiZone.cz: ČRa hodnotí pilotní 4K vysílání

ČRa hodnotí pilotní 4K vysílání

DigiZone.cz: Nova stahuje bonus díl „Tvoje tvář má...“

Nova stahuje bonus díl „Tvoje tvář má...“

DigiZone.cz: Kritické poznámky k DVB-T2

Kritické poznámky k DVB-T2

Lupa.cz: Zaměstnanec T-Mobilu ukradl data o zákaznících

Zaměstnanec T-Mobilu ukradl data o zákaznících

120na80.cz: Krémy, nebo spreje na opalování?

Krémy, nebo spreje na opalování?

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

Podnikatel.cz: Výpadek internetu a #EET. Co s tím?

Výpadek internetu a #EET. Co s tím?

120na80.cz: Léky a dietní opatření při kopřivce

Léky a dietní opatření při kopřivce

Podnikatel.cz: Takhle si Babiš představuje nové daně

Takhle si Babiš představuje nové daně

Podnikatel.cz: 10 citátů Billa Gatese: tesat do kamene

10 citátů Billa Gatese: tesat do kamene

DigiZone.cz: Slováci první, Češi třetí. Krásný...

Slováci první, Češi třetí. Krásný...

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic

Lupa.cz: Nej aplikace? Vodafone, Mozkovna, Záchranka

Nej aplikace? Vodafone, Mozkovna, Záchranka

DigiZone.cz: Noxon iRadio 1 W bude za pár měsíců

Noxon iRadio 1 W bude za pár měsíců

DigiZone.cz: Soud zakázal šíření TV Markíza v ČR

Soud zakázal šíření TV Markíza v ČR

Vitalia.cz: 7 receptur z pohanky. Svědčí zdraví

7 receptur z pohanky. Svědčí zdraví

Vitalia.cz: Jíme přesolené potraviny. Zrovna tyhle

Jíme přesolené potraviny. Zrovna tyhle