SSH aneb jak na vzdálený server

Ahoj uživateli. Chtěl jsem Ti jen sepsat návod jak na ssh a vše kolem toho. Zejména práce se soubory na vzdáleném serveru. Uvidíš, že to není o nic složitější, než práce lokální. Vlastně přibude jen specifikace uživatele a serveru.

Vygenerování klíčů

Klíče se vygenerují pomocí ssh-keygen, v základním nastavení se vygeneruje soubor ~/.ssh/id_rsa, což je soukromý klíč a soubor ~/.ssh/id_rsa.pub, což je veřejný klíč. Při generování klíče můžeme zadat také heslo (passphrase).

Klíče na server umístí nejčastěji jeho administrátor. Potřebuje pouze obsah souboru ~/.ssh/id_rsa.pub. Pokud je na serveru povolené přihlášení pomocí hesla, je možné si klíč nainstalovat sám, pomocí příkazu ssh-copy-id uzivatel@server. Což je skript, který se přihlásí na vzdálený server vyzve uživatele k zadání hesla) a umístí veřejný klíč na správné místo.

Tím správným místem je soubor ~/.ssh/authorized_keys, na serveru. Při ruční instalaci je třeba dbát na správné nastavení práv, soubor authorized_keys musí mít oprávnění ne větší než 600 a adresář ~/.ssh ne větší než 700 a vlastníkem musí být daný uživatel.

man ssh-keygen
man ssh-copy-id

Přihlášení na server

Když už je klíč na serveru, tak se lze přihlásit pomocí jednoduchého příkazu ssh uzivatel@server, což by mělo projít automaticky.

man ssh

SSH Agent

Pokud máme klíče opatřeny tajnou frází (což bych doporučoval), tak při každém jejich použití je nutné danou frázi zadávat znovu a znovu, což není příjemné. Proto vzniknul ssh agent, který umí načíst klíče do paměti (při počátečním načtení se zeptá na tajnou frázi ke klíči) a potom je automaticky poskytuje ssh klientům (ssh, scp, rsync, git…). Klíč agentovi předáme pomocí příkazu ssh-add cesta/ke/klíči.

man ssh-add

Práce se vzdálenými soubory

Na (nebo z) vzdáleného serveru lze kopírovat soubory pomocí příkazu scp (secure copy). Například kopírování souboru /home/uzivatel/soubor na server se udělá snadno pomocí příkazu scp /home/uzivatel/soubor uzivatel@server:/home/uzivatel/soubor

Jak je vidět, příkaz je zcela identický s příkazem cp, až na určení serveru (to je to uzivatel@server: — pozor na dvojtečku na konci, ta odděluje určení serveru od určení souboru) kam (nebo udkud) se má daný soubor nakopírovat.

Lze používat také relativní cesty, například uzivatel@server:soubor je soubor přímo v home adresáři na daném serveru (lokálně bychom psali ~/soubor).

man scp

Připojení vzdáleného adresáře

A teď to nejlepší. Když už je zařízený přístup na server (příkaz ssh uzivatel@server projde bez komplikací) je možné libovolný vzdálený adresář na serveru připojit k sobě a pracovat s tím stejně jako s jakýmkoliv diskem (akorát je to teda pomalejší dle rychlosti sítě).

Je k tomu potřeba balíček sshfs (aptitude install sshfs) a na Debianu (a předpokládám i jinde) musí být uživatel členem skupiny fuse (členství se zařídí příkazem adduser uzivatel fuse), jinak to píše chybu fuse: failed to open /dev/fuse: Permission denied. Potom je třeba se odhlásit a přihlásit, aby se členství ve skupině projevilo.

Teď už si uživatel může připojit vzdálený adresář pomocí sshfs uzivatel@server:/nejaky/adresar /kam/pripojit (opět je zde stejná syntaxe s dvojtečkou). A je to. V lokálním adresáři (/kam/pripojit, v praxi to bude spíše nějaký adresář v home uživatele) je připojený adresář, který je fyzicky umístěný na vzdáleném serveru a lze s ním pracovat stejně jako s lokálním.

man sshfs

Například, což používám já, připojení mého home adresáře na serveru floyd do lokálního adresáře pojmenovaného floyd:

sshfs tomas@floyd.iprint.sk: floyd

Odpojení vzdáleného adresáře

Stejně jako u ostatních systémů souborů je třeba daný adresář po práci řádně odpojit a to pomocí příkazu fusermount -u přípojný_bod, takže pro předchozí příklad to bude fusermount -u floyd.

A to je celé :-). Na Linuxu (na síti) je krásné to, že vlastně vůbec nezáleží na tom, kde daný server fyzicky je. Pomocí jednoho démona (sshd) lze vzdáleně pracovat na konzoli, kopírovat soubory mezi servery se stejnou lehkostí, jako by byly lokálně. A mnoho dalšího.

Příspěvek byl publikován v rubrice Linux, SSH. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

2 komentáře: SSH aneb jak na vzdálený server

  1. Pingback: Krása příkazového prostředí | Heronovo

  2. Pingback: Nové možnosti nastavení OpenSSH démona, SFTP a Chroot | Heronovo

Komentáře nejsou povoleny.