Hlavní navigace

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

Petr Macek

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?

5. 5. 2008 7:20

bauer (neregistrovaný)
naopak, oceňuji jednoduchost v kostce, o možnosti klíče jsem se doposud nikde nedověděl...

5. 5. 2008 7:42

Presne takove lidi jako jste Vy hledame - kontaktujte redakci a napiste vlastni dil. Kazdy ma sve omezene mnozstvi tipu. Muzete treba popsat vami pouzivane aplikace. Serial se ubira smerem, ktery zase spouste lidi svedci. Tezko se zavdecit vsem
DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Vychytané vály a válečky na vánoční cukroví

Vychytané vály a válečky na vánoční cukroví

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu