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?
Lupa.cz: Japonská invaze. Proč SoftBank kupuje ARM?

Japonská invaze. Proč SoftBank kupuje ARM?

120na80.cz: Tipy pro odvodnění organismu

Tipy pro odvodnění organismu

DigiZone.cz: Starci na chmelu jsou restaurovaní do 4K

Starci na chmelu jsou restaurovaní do 4K

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

Podnikatel.cz: Rozhodnuto! Pracující senior penzi nezdaní

Rozhodnuto! Pracující senior penzi nezdaní

Podnikatel.cz: Místa, kde hází podnikání klacky pod nohy

Místa, kde hází podnikání klacky pod nohy

Vitalia.cz: Sobotní masakr žrádla, chlastu a zábavy

Sobotní masakr žrádla, chlastu a zábavy

Podnikatel.cz: Eshop z ČR v Rumunsku? Žádná legrace

Eshop z ČR v Rumunsku? Žádná legrace

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: Dermatolog radí: Pozor na citrusové vůně

Dermatolog radí: Pozor na citrusové vůně

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Podnikatel.cz: Nereaguje na výzvu ČOIky, zaplatí milion

Nereaguje na výzvu ČOIky, zaplatí milion

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Vitalia.cz: Za zánět močových cest mohou plavky

Za zánět močových cest mohou plavky

Podnikatel.cz: Fotogalerie: Jesenka už má skoro 50 let

Fotogalerie: Jesenka už má skoro 50 let

Podnikatel.cz: Automatický marketing. Maily je nebudou štvát

Automatický marketing. Maily je nebudou štvát

Vitalia.cz: Tohle je Břicháč Tom, co zhubnul 27 kg

Tohle je Břicháč Tom, co zhubnul 27 kg

Lupa.cz: EU začala prověřovat bezpečnost open-source

EU začala prověřovat bezpečnost open-source

Měšec.cz: Cool karta: recenze předplacenky

Cool karta: recenze předplacenky