|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Linux v příkazech - ssh, rsyncToto je první článek v naší sérii o praktickém použití příkazové řádky věnovaný síťové komunikaci.
SSH
Začneme s v Linuxu a linuxových systémech obecně velmi rozšířeným
nástrojem jménem SSH znamená secure shell, ovšem kromě šifrování a bohatého výběru autentizačních mechanismů přináší další řadu možností jako např. forwarding TCP spojení, tunelování X11, kompresi a další.
Aby bylo možné bfu@client:~$ ssh bfu@ssh.linuxsoft.cz The authenticity of host 'ssh.linuxsoft.cz (82.208.29.34)' can't be established. RSA key fingerprint is 10:17:47:bc:08:98:a7:db:7e:17:3a:dc:3a:03:73:43. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ssh.linuxsoft.cz,82.208.29.34' (RSA) to the list of known hosts. bfu@ssh.linuxsoft.cz's password: ******** bfu@linuxsoft:~$ Hláška o RSA klíči se objevila, protože klient nebyl schopný ověřit identitu serveru a tudíž nelze nijak vyloučit, že opice sedí na drátě (MITM neboli monkey-in-the-middle) a vydává se za server. Tuto hlášku byste neměli ignorovat, ale poskytnutý fingerprint ověřit. Na cesty doporučuji fingerprinty v peněžence na kartičce velikosti kreditní karty, z druhé strany může být seznam jednorázových hesel :-) Ověřené klíče se obvykle ukládají do $HOME/.ssh/known_hosts, nebo je může administrátor uložit do /etc/ssh/ssh_known_hosts. Pokud bychom chtěli vidět fingerprinty těchto uložených klíčů (např. pro přípravu zmíněné kartičky), použijeme např. příkaz bfu@client:~$ ssh-keygen -l -f .ssh/known_hosts 2048 10:17:47:bc:08:98:a7:db:7e:17:3a:dc:3a:03:73:43 ssh.linuxsoft.cz 1024 a9:1d:8a:74:87:30:a7:41:a8:26:7e:88:e6:42:e2:6b root.cz
Máme tedy ověřenu identitu serveru, pojďme se podívat, co dalšího nám
ssh -1 -C -X -p 2222 ssh.linuxsoft.cz
stále vede k získání interaktivního shellu. Použité volby jsou ortogonální,
Volba
A konečně volba Vynechání uživatelského jména je v pořádku, v takovém případě se použije login lokálního uživatele. Spuštěním shellu možnosti ssh nekončí. Zjistit čas na vzdaleném serveru můžeme třeba takto: bfu@client:~$ ssh ssh.linuxsoft.cz 'date' Fri Jul 1 06:54:11 CEST 2004
Uvozovky jsou v tomto případě zbytečné, ovšem je dobré si na ně zvyknout, u
příkazů s parametry už totiž nutné jsou. Jak je vidět, vede toto ke spuštění
příkazu na vzdáleném serveru, přičemž standardní výstup je přes ssh přesměrován
na klienta. A nejen to, standardní vstup je zase přesměrován na server,
zkopírovat lokální soubor ssh ssh.linuxsoft.cz 'cat > secret_file_copy' < secret_file
V případě celého adresáře použijeme stejným způsobem tar cf - some_dir | ssh ssh.linuxsoft.cz 'tar xf -'
Pro přenos souborů přes
Ukažme si ještě jednu vlastnost ssh -N -L 11000:pop.host.com:110 ssh.linuxsoft.cz
Po zadání hesla se pak můžete pop3 klientem připojit na lokální port
11000/tcp, toto spojení bude na port 110/tcp serveru pop.host.com navázáno z
ssh.linuxsoft.cz, mezi klientem a ssh.linuxsoft.cz je komunikace jako obvykle
tunelovaná a šifrovaná pomocí
Lze provést i přesměrování v opačném směru, pomocí ssh -N -R 8080:localhost:80 ssh.linuxsoft.cz
Nyní se lze připojit na port 8080 serveru RsyncRsync je poměrně sofistikovaný nástroj pro přenos souborů. Mezi jeho hlavní výhody patří efektivita, vysoká konfigurovatelnost a kontrola integrity přenášených dat je přímo součástí protokolu. Je to jeden z nejrozšířenějších nástrojů používaných pro synchronizaci dat mezi hlavním zdrojem a mirrory, umí totiž přenášet pouze nové soubory a u existujících pouze jejich změněné části.
Syntax je jednoduchá, rsync {případné předvolby} {zdroj nebo více zdrojů} {cíl}
Zdroj a cíl mohou mít několik tvarů. Nejdůležitější je rozlišení na lokální a
vzdálená umístění. Lokální umístění se zapisují stejně jako např. v případě
bfu@linux:~$ rsync *.jpg /home/bfu/photo
Chceme-li kopírovat celé adresáře, je nutno použít parametr bfu@linux:~$ rsync -rv --progress /share/linux/MDK-amd64 /tmp/to_burn building file list ... 6 files to consider created directory /tmp/to_burn MDK-amd64/Mandrakelinux10.0-CD1.amd64.iso 726958080 100% 6.13MB/s 0:01:53 MDK-amd64/Mandrakelinux10.0-CD2.amd64.iso 727709696 100% 6.15MB/s 0:01:52 MDK-amd64/Mandrakelinux10.0-CD3.amd64.iso 727904256 100% 5.85MB/s 0:01:58 MDK-amd64/Mandrakelinux10.0-CD4.amd64.iso 724908032 100% 5.74MB/s 0:02:00 MDK-amd64/Mandrakelinux10.0-amd64.md5sum 264 100% 0.00kB/s 0:00:00 wrote 2907835604 bytes read 100 bytes 6246693.24 bytes/sec total size is 2907480328 speedup is 1.00
Pozor na zápis adresářů ve zdrojích. V případě, že za jméno adresáře napíšeme
lomítko, je přenesen jeho obsah, nikoliv adresář samotný. Následující dva
příkazy vedou ke stejnému výsledku, tj. zkopírování ISO obrazů do adresáře
rsync /share/linux/MDK-amd64/ /tmp/to_burn rsync /share/linux/MDK-amd64/* /tmp/to_burn
Pro co možná nejidentičtější kopii lze použít parametr
Rsync se ovšem většinou používá nikoliv jako "chytřejší" rsync -a rsync://ftp.debian.org/debian /ftproot/mirror/ftp.debian.org rsync -a www bfu@remote.machine.com:archive
První příkaz přenese Debianí FTP archiv na lokální stroj do určeného adresáře.
Druhý pak zkopíruje adresář
Rozdíl je v použitém protokolu. Příklad s Debianem používá vlastní
Řada velkých archivů software tuto službu provozuje kvůli snadné synchronizaci
s mirrory, někdy je dostupná i běžným uživatelům – v takovém případě je
při stahování např. ISO obrazů vhodné dát programu bfu@linux:~$ rsync -v --progress --partial \ rsync://debian.sh.cvut.cz/debian-cd/current/ iso/i386/debian-30r2-i386-binary-1.iso . Welcome to SiLiCONN HiLL MiRROR SiTE Use: ftp.sh.cvut.cz::ftp/ Server name: ftp.sh.cvut.cz Server IP: 147.32.127.222 CPU and RAM: Intel Celeron 800MHz, 384MB Connection: 100 MBit Location: Europe, Czech Republic, Prague Contact: admin@ftp.sh.cvut.cz debian-30r2-i386-binary-1.iso 10829824 1% 5.67MB/s 0:01:43
Pro nás užitečnější bude ale především druhý zápis s dvojtečkou. V takovém
případě je přenos realizován přes službu vzdáleného shellu, dnes tedy většinou
Následující příkaz přenese všechny PDF dokumenty z domovského adresáře vzdáleného serveru do aktuálního lokálního adresáře. Příklad předpokládá, že vzdálený uživatel je stejný jako lokálně přihlášený. rsync remote.machine.com:*.pdf .
Lokální adresář rsync -a --delete data remote.machine.com:
Parametr
Ke komfortnímu používání
Rsync je opravdu mocný nástroj, práce s ním je efektivní a díky ssh také
bezpečná, navíc je možné ho použít prakticky kdekoliv (jak již bylo zmíněno,
stačí nainstalovaný Zdroje
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |