Stalo se ti někdy, že jsi chtěl přenést soubory mezi počítači v síti a narazil jsi na bezpečnostní problémy? Nemůžeš prostě hodit své soubory do sítě a doufat, že zůstanou bezpečné, jako Červená Karkulka! Potřebuješ bezpečnostní opatření. Měl bys použít protokol pro přenos souborů, který chrání tvá data před neoprávněným přístupem, odposloucháváním v síti, únikem dat a dalšími hrozbami.
Secure Copy Protocol (SCP) je výkonný síťový protokol pro přenos souborů mezi různými počítači v síti. V tomto příspěvku se seznámíme s tímto protokolem a prozkoumáme možnosti používání SCP ze vzdáleného počítače na místní.
Jak SCP funguje?
SCP používá SSH (Secure Shell) k přenosu vašich souborů. Ale co to vlastně znamená? SSH je síťový protokol pro bezpečný vzdálený přístup na servery. Má zabudované metody pro ověřování, šifrování a kontrolu integrity přenášených souborů. SCP se opírá o tyto bezpečnostní prvky a šifrovací metody, které poskytuje SSH, a bezpečně tak přenáší soubory po síti. Můžete tak využít SCP pro přenos souborů mezi vzdálenými a lokálními servery a být si jistí autentičností a důvěrností vašich dat.
Používání SCP pro přenos souborů: Proč a jak?
Přenos SCP ze vzdáleného na lokální počítač a naopak je účinný a flexibilní způsob sdílení souborů. SCP nabízí řadu výhod. Například poskytuje silnější bezpečnostní opatření než jiné metody přenosu souborů, jako je FTP. Dalším aspektem, v němž se SCP liší od ostatních protokolů, je rychlost. SCP je obvykle mnohem rychlejší než jiné protokoly jako SFTP a výborně se hodí k přenosu souborů mezi Linux stroji.
Soubory můžete přesouvat pomocí SCP:
- Ze lokálního počítače na vzdálený počítač
- Ze vzdáleného počítače na lokální počítač
- Ze vzdáleného počítače na další vzdálený počítač.
Nyní se podíváme na samotné použití syntaxe Linux SCP pro přenos souborů. Nejdřív musíte nastavit SSH na obou počítačích. Je ale důležité poznamenat, že SSH je obvykle již nainstalován na všech Linux strojích. V tom případě můžete tyto kroky přeskočit.
1. Nastavení SSH
Spusťte následující příkaz pro instalaci SSH:
sudo apt install openssh-client
2. Generování klíčů SSH
Klientské zařízení pak musí navázat připojení SSH. Bezpečné spojení mezi klientem a serverem vyžaduje soukromý a veřejný klíč. Tento příkaz vám vytvoří pár klíčů SSH:
ssh-keygen
Při spuštění tohoto příkazu budete pravděpodobně vyzváni k zadání názvu páru klíčů a přístupové fráze (ta je volitelná). Jakmile je pár klíčů vytvořen, musíte zkopírovat veřejný klíč na serverový počítač.
Podívejme se na obecný tvar příkazu SCP:
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [možnosti] - Tuto část nahraďte různými možnostmi příkazu SCP, kterým se budeme věnovat později.
- [uživatelské_jméno_zdroje@IP] - Nahraďte tuto část uživatelským jménem a IP adresou lokálního počítače. Příklad: [email protected]
- [cesta/název_souboru] - Nahraďte tuto část umístěním souboru, který chcete poslat.
- [uživatelské_jméno_cíle@IP] - Nahraďte tuto část uživatelským jménem a IP adresou přijímajícího počítače.
- [cesta] - Nahraďte tuto část požadovaným umístěním souboru na vzdáleném počítači.
Nyní už víte, jak obecný příkaz vypadá. Podívejme se na všechny užitečné možnosti příkazu SCP:
| Možnost | Případ použití |
| -C |
Pomocí této možnosti SCP komprimuje vaše soubory během přenosu.
|
| -c <cipher> |
Touto možností můžete říci SCP, aby použil konkrétní šifru. Příklad: scp -c <aes128-ctr>.
|
| -v |
Tato možnost vám zobrazí průběh procesu krok za krokem.
|
| -l <limit in kilobytes> |
Touto možností můžete nastavit limit pro maximální šířku pásma. Následující příkaz například nastaví využití šířky pásma na 100 kb za sekundu: scp -l 100
|
| -P |
Pomocí této možnosti můžete změnit ssh port vzdáleného serveru, ke kterému se chcete připojit. SCP standardně používá port 22.
|
| -S <název programu> |
Touto možností můžete zvolit program pro připojení.
|
| -r |
Kopírovat celý soubor nebo adresář rekurzivně.
|
Přenos souborů pomocí SCP
Vzpomínáte si, že máme tři typy přenosů přes SCP? Teď chceme každý typ podrobně prozkoumat. Ale nejdřív si ujasníme, co chceme udělat. Mám fotografii kočky na ploše počítače Linux a v prvním kroku ji chci přenést na vzdálený server Linux. Pak si ji vrátím zpět na svůj lokální počítač. A nakonec si ta šťastná kočka vejde mezi dva vzdálené servery.

SCP ze místního na vzdálený počítač
Tento příkaz přenese váš soubor z lokálního počítače na vzdálený server:
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Chcete-li scp používat s heslem, zadejte heslo svého vzdáleného serveru. Hotovo.

SCP ze vzdáleného na místní počítač
Chcete-li postup zvrátit, nepotřebujete přistupovat k terminálu vzdáleného serveru. V terminálu svého lokálního počítače zadejte tento příkaz:
scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]
Jak vidíte, v tomto příkazu jsme právě zaměnili dvě části.

SCP mezi dvěma vzdálenými počítači
Teď přeneseme kočku mezi dva vzdálené servery. Tento krok vyžaduje heslo obou vzdálených serverů, proto si je připravte. Použijte tento příkaz k přenosu souboru mezi dvěma vzdálenými počítači:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Další běžné příkazy SCP
Nejčastěji používané příkazy scp jsou přenos ze vzdáleného serveru na lokální, ze lokálního na vzdálený a mezi dvěma vzdálenými servery. Ale pojďme jít dál a projděme si další užitečné příklady použití scp v Linux.
1. Kopírování celého adresáře rekurzivně
Představte si, že chcete přenést celou složku se všemi soubory, které obsahuje. Přenos souborů jeden po jednom by byl velmi časově náročný. Místo toho můžete použít příkaz scp pro přenos více souborů a kopírovat složku rekurzivně:
scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]
To je užitečné v mnoha situacích:
- Nasazení kódu: když nasazujete kód nebo webové aplikace, možná budete muset přenést celou složku se všemi jejími součástmi, jako jsou soubory a skripty.
- Zálohování a synchronizace: Chcete-li mít zálohu celé složky nebo chcete synchronizovat dvě složky mezi lokálním počítačem a vzdáleným serverem, musíte vše kopírovat rekurzivně.
- Migrace systému Zásadní úkol při migraci systému je zkopírovat a přenést všechny důležité informace. Použití příkazu SCP s volbou -r zajistí, že během přesunu nic nepřehlédnete.
2. Omezení využití šířky pásma
Pokud chcete kontrolovat rychlost přenosu dat, použijte tento příkaz:
scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Proč byste to dělali?
V těchto dvou scénářích můžete pomocí syntaxe scp v Linux nastavit limit šířky pásma:
- Přetížení sítě: Pokud je vaše síť velmi přetížená, omezení šířky pásma pomocí scp pomůže s lepší distribucí síťových prostředků. Omezení šířky pásma u SCP zajistí, že ostatní síťové úkoly běží bez problémů. To je důležité i při přenosu souborů přes sdílenou síť, kde váš proces může narušovat síťové aktivity ostatních uživatelů.
- Přenosy na pozadí: Během automatických přenosů SCP, jako jsou zálohy nebo synchronizační procesy, mohou tyto úkoly spotřebovat všechny vaše síťové prostředky. V takovém případě můžete na těchto přenosech omezit šířku pásma, abyste lépe spravovali zdroje.
3. Získání podrobného protokolu
Volba -v u SCP vám poskytne podrobný protokol dodatečných informací o procesu přenosu. Pomocí následujícího příkazu si vyžádejte podrobnou zprávu:
scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Proto byste měli tento příkaz pamatovat a používat:
- Řešení problémů: tato volba vám ukazuje průběh přenosu. Vidíte informace jako velikost souboru a procento dokončení. Zobrazí vám také chybové zprávy a upozornění. Kombinace těchto údajů vám umožní monitorovat a řešit problémy s přenosem, když je to potřeba.
4. Zadání portu SSH
Použitím syntaxe Linux scp s volbou -P můžete změnit port SSH. Zde je příkaz, kterým to můžete udělat:
scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
To je užitečné pro:
- Konfigurace Firewallu: Pokud je výchozí port SSH omezen nebo chcete skrýt službu SSH před potenciálními hrozbami, můžete port SSH změnit.
Existují nějaké alternativy k SCP?
SCP je rychlý a bezpečný, a pokud znáte správnou syntaxi Linux scp a máte pár triků na odstraňování problémů, může být jediným nástrojem, který potřebujete. Stejně tak ale není na škodu podívat se na alternativy.
1. rsync
rsync je všestranný nástroj pro přenos souborů s pokročilými možnostmi synchronizace, přírůstkovým přenosem a kopírováním na vzdálené i místní počítače. Může také snížit spotřebu pásma tím, že přenáší pouze rozdíly mezi zdrojovými a cílovými soubory. Další výhodou rsync je, že může pokračovat v přerušených přenosech souborů z místa, kde skončily.
rsync Výhody
- Efektivní synchronizace souborů a adresářů.
- Podporuje algoritmus delta-přenosu, který snižuje objem přenesených dat.
- Může obnovit přerušené přenosy.
rsync Nevýhody
- Vyžaduje instalaci rsync na zdrojovém i cílovém systému.
- Vyžaduje více nastavení a voleb příkazů ve srovnání se scp.
2. SFTP (protokol přenosu souborů SSH)
SFTP poskytuje bezpečný způsob přenosu souborů přes SSH. Nabízí podobné funkce jako FTP, ale funguje přes šifrované připojení SSH, podobně jako SCP. V některých ohledech však převažují výhody SFTP nad výhodami SCP. SCP nemůže generovat výpisy adresářů, vytvářet ani mazat adresáře atd. SFTP naopak všechny tyto úkoly zvládá.
Výhody SFTP
- Bezpečný přenos souborů se šifrováním.
- Možnosti správy vzdálených souborů.
- Dostupné na většině systémů Linux a Unix.
SFTP Nevýhody
- Syntaxe příkazů se liší od tradičního FTP.
- Může mít omezenou podporu na některých vestavěných systémech nebo zařízeních.
3. FTP (protokol pro přenos souborů)
FTP je široce používaný standardní protokol pro přenos souborů. Funguje na základě modelu klient-server a nabízí základní funkce přenosu souborů.
Výhody FTP
- Rozšířená podpora na různých platformách.
- Dostupní jsou známí klienti s příkazovým řádkem i grafickým rozhraním.
FTP Nevýhody
- Postrádá šifrování / je méně bezpečný ve srovnání se scp a sftp.
- Může vyžadovat další konfiguraci firewallu pro navázání spojení.
- Autentizace v prostém textu.
Celkově je scp jednoduchá a spolehlivá volba pro bezpečný přenos souborů přes SSH, ale alternativy jako rsync, sftp a FTP mohou nabídnout další funkce a flexibilitu v závislosti na konkrétních požadavcích.
Jak si vybrát správnou možnost? Zvažte faktory jako bezpečnost, synchronizační potřeby, snadnost použití a kompatibilitu s vašimi systémy a protokoly. Například pokud jsou bezpečnost a důvěrnost dat nejdůležitější pro váš přenos souborů, pak FTP není vhodná volba.
Závěr
SCP je rychlý a bezpečný nástroj pro přenos souborů mezi počítači. Můžete ho používat k přenosu ze vzdáleného počítače na místní, z místního na vzdálený a dokonce i mezi dvěma vzdálenými systémy. Ačkoli existují alternativy k SCP jako rsync, které fungují obstojně, SCP je překonává v mnoha ohledech, zejména v bezpečnosti a rychlosti. V tomto článku jsme se zabývali SCP, jeho případy použití, alternativami a přidali jsme i tahák pro snadný přístup k často používané syntaxi.
Často kladené otázky
Existují nějaké bezpečnostní problémy, na které bych měl upozornit, když používám SCP ze vzdáleného počítače na místní?
SCP je poměrně bezpečný nástroj a nemusíte si dělat starosti s bezpečnostními hrozbami při jeho používání. Přesto je vždy doporučeno podniknout všechna další bezpečnostní opatření, která můžete.
Jaké běžné chyby se vyskytují při používání SCP ze vzdáleného na místní počítač?
Při přenosu souborů ze vzdáleného serveru na místní počítač pomocí SCP se uživatelé mohou setkat s několika běžnými chybami. Zde jsou dvě z nejčastějších chyb při přenosu SCP ze vzdáleného počítače na místní:
- Soubor nebo adresář neexistuje: tato chyba nastane, když jste nezadali správné číslo portu, nastavení oprávnění souboru je nesprávné, nebo jsou přihlašovací údaje nesprávné.
- Ověření klíče hostitele selhalo: tato chyba nastane, když se klíč hostitele změnil kvůli aktualizaci serveru. Klíč hostitele ukazuje, že jste se k tomuto serveru již připojili, a když ověření klíče hostitele selže, znamená to, že se identita serveru změnila. Tato chyba vás chrání před připojením k podvodném serveru.
Jak používám SCP k přenosu souborů mezi vzdálenými systémy?
Aby bylo možné úspěšně přenášet soubory mezi systémy pomocí SCP, měly by být oba počítače přístupné prostřednictvím SSH. Potřebujete také IP adresu a heslo vzdálených počítačů. Zbytek je jen použití správného příkazu SCP:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]
Po zadání tohoto příkazu budete vyzváni k zadání hesla pro servery. Poté se váš soubor přenese.