- příkaz scp – Secure copy
- Jak nainstalovat scp
- Používání programu scp – základní syntaxe
- Příklady příkazů scp
- 1. Slovní výstup
- 2. Přenos více souborů
- 3. Kopírování více souborů ze vzdáleného hostitele. Kopírování celého adresáře (rekurzivně)
- 4. Kopírování souborů přes 2 vzdálené hostitele
- 5. Kopírování souborů přes 2 vzdálené hostitele
- 6. Omezte využití šířky pásma
- 7. Omezte využití šířky pásma. Připojení k jinému číslu portu na vzdáleném hostiteli
- 8. Zachování atributů souboru
- 9. Připojení k jinému číslu portu na vzdáleném hostiteli
- 10. Zadejte soubor identity
- 11. Použití jiného souboru ssh_config
- 12. Použít jinou šifru
- Shrnutí
příkaz scp – Secure copy
Scp (Secure Copy) je nástroj příkazového řádku pro kopírování nebo přenos souborů mezi hostiteli. Používá stejný druh bezpečnostního mechanismu jako program ssh.
Ve skutečnosti používá k přenosu souborů připojení ssh na pozadí. scp označuje jak „protokol“, který definuje, jak má bezpečné kopírování fungovat, tak „program“ (příkaz), který je nainstalován jako součást sady nástrojů OpenSSH.
V tomto stručném návodu se podíváme na několik příkladů příkazu scp a na to, jak jej lze použít k bezpečnému přenosu souborů.
Jak nainstalovat scp
Scp je obecně ve většině linuxových distribucí standardně nainstalován jako součást balíčků openssh. Například v ubuntu/debianu poskytuje program scp balíček openssh-client.
$ dpkg -L openssh-client | grep scp/usr/bin/scp/usr/share/man/man1/scp.1.gz
Je to balíček OpenSSH, který poskytuje programy ssh, scp, sftp spolu s mnoha dalšími nástroji. Nemusíme zde tedy dělat nic navíc, kromě používání a učení se programu.
Používání programu scp – základní syntaxe
Základní syntaxe programu scp je velmi jednoduchá na zapamatování. Vypadá takto
$ scp source_file_path destination_file_path
V závislosti na hostiteli by cesta k souboru měla obsahovat úplnou adresu hostitele, číslo portu, uživatelské jméno a heslo spolu s cestou k adresáři.
Pokud tedy „posíláte“ soubor z místního počítače na vzdálený počítač (upload), syntaxe bude vypadat takto
$ scp ~/my_local_file.txt _host.com:/some/remote/directory
Pokud kopírujete soubor ze vzdáleného hostitele na místního hostitele (download), vypadá to přesně naopak
$ scp _host.com:/some/remote/directory ~/my_local_file.txt# just download the file$ scp :/some/path/file.txt .
To je zhruba tolik o používání scp pro běžné úlohy. Kromě toho existuje několik dalších možností a funkcí, které scp podporuje. Podívejme se na ně v rychlosti.
A ano, ve výchozím nastavení scp vždy přepíše soubory v cíli. Pokud se tomu potřebujete vyhnout, použijte výkonnější nástroj rsync.
Příklady příkazů scp
1. Slovní výstup
Při slovním výstupu by program scp vypisoval spoustu informací o tom, co dělá na pozadí. To je často užitečné, když program selže nebo není schopen dokončit požadavek. Ve verbose výstupu by pak bylo uvedeno přesné místo, kde program narazil na problémy.
$ scp -v ~/test.txt :/root/help2356.txtExecuting: program /usr/bin/ssh host 192.168.1.3, user root, command scp -v -t /root/help2356.txtOpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013debug1: Reading configuration data /home/enlightened/.ssh/configdebug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to 192.168.1.3 port 22.debug1: Connection established...... OUTPUT TRUNCATED
Výstup by byl velký a obsahoval by podrobné informace o tom, jak je navázáno spojení, jaké konfigurační a identifikační soubory se používají atd.
2. Přenos více souborů
Více souborů lze zadat oddělených mezerou takto
$ scp foo.txt bar.txt :/path/directory/
Kopírování více souborů ze vzdáleného hostitele do aktuálního lokálního adresáře
$ scp :/path/directory/\{foo.txt,bar.txt\} .$ scp :~/\{abc.log,cde.txt\} .
3. Kopírování více souborů ze vzdáleného hostitele. Kopírování celého adresáře (rekurzivně)
Pro kopírování celého adresáře z jednoho hostitele na druhého použijte přepínač r a zadejte adresář
$ scp -v -r ~/Downloads :/root/Downloads
4. Kopírování souborů přes 2 vzdálené hostitele
Scp může kopírovat soubory i z 1 vzdáleného hostitele na jiného vzdáleného hostitele.
$ scp :/some/remote/dir/foobar.txt :/some/remote/dir/
5. Kopírování souborů přes 2 vzdálené hostitele
Scp může kopírovat soubory i z 1 vzdáleného hostitele na jiného vzdáleného hostitele. Zrychlení přenosu pomocí komprese
Super skvělá možnost, jak zrychlit přenos a ušetřit čas a šířku pásma. Jediné, co musíte udělat, je použít volbu C pro zapnutí komprese. Soubory jsou komprimovány za běhu a dekomprimovány v cíli.
$ scp -vrC ~/Downloads :/root/Downloads
V uvedeném příkladu jsme přesunuli celý adresář s povolenou kompresí. Zvýšení rychlosti by záviselo na tom, jak moc by bylo možné soubory komprimovat.
6. Omezte využití šířky pásma
Pokud nechcete, aby scp zabíralo celou dostupnou šířku pásma, použijte volbu l pro omezení maximální rychlosti v Kbit/s.
$ scp -vrC -l 400 ~/Downloads :/root/Downloads
7. Omezte využití šířky pásma. Připojení k jinému číslu portu na vzdáleném hostiteli
Pokud má vzdálený server démona ssh spuštěného na jiném portu (výchozí je 22), pak je třeba říci scp, aby použil toto konkrétní číslo portu pomocí volby ‚-P‘.
$ scp -vC -P 2200 ~/test.txt :/some/path/test.txt
8. Zachování atributů souboru
Volba ‚-p‘ (malá písmena), by zachovala časy modifikace, přístupové časy a režimy z původního souboru.
$ scp -C -p ~/test.txt :/some/path/test.txt
9. Připojení k jinému číslu portu na vzdáleném hostiteli
Pokud má vzdálený server démona ssh spuštěného na jiném portu (výchozí je 22), pak je třeba říci scp, aby použil toto konkrétní číslo portu. Tichý režim
V tichém režimu ( volba ‚-q‘ ) by se výstup scp potlačil a vypnul by se ukazatel průběhu a varovná a diagnostická hlášení.
$ scp -vCq ~/test.txt :/some/path/test.txt
10. Zadejte soubor identity
Při použití ověřování na základě klíče (bez hesla) byste museli zadat soubor identity, který obsahuje soukromý klíč. Tato volba se předává přímo příkazu ssh a funguje stejným způsobem.
$ scp -vCq -i private_key.pem ~/test.txt :/some/path/test.txt
11. Použití jiného souboru ssh_config
Pomocí volby ‚-F‘ můžete zadat jiný soubor ssh_config.
$ scp -vC -F /home/user/my_ssh_config ~/test.txt :/some/path/test.txt
12. Použít jinou šifru
Scp ve výchozím nastavení používá šifru/šifrování AES. Někdy můžete chtít použít jinou šifru. Použití jiné šifry může urychlit proces přenosu. Například je známo, že šifry blowfish a arcfour jsou rychlejší než AES (ale méně bezpečné).
$ scp -c blowfish -C ~/local_file.txt :/remote/path/file.txt
V uvedeném příkladu používáme šifru blowfish spolu s kompresí. To může přinést výrazné zvýšení rychlosti v závislosti na dostupné šířce pásma.
Shrnutí
Ačkoli je scp velmi efektivní při bezpečném přenosu souborů, postrádá potřebné funkce nástroje pro synchronizaci souborů. Jediné, co umí, je kopírovat a vkládat všechny zmíněné soubory z jednoho umístění do druhého.
Výkonnějším nástrojem je Rsync, který má nejen všechny funkce scp, ale přidává další funkce pro inteligentní synchronizaci souborů mezi dvěma hostiteli. Dokáže například kontrolovat a odesílat pouze změněné soubory, ignorovat existující soubory a podobně.
Napsat komentář