Jak používat příkaz SCP k bezpečnému přenosu souborů v systému Linux
Příklad:
scp -rv -P cisloportussh /cesta/k/souborum/ktere/chceme/kopirovat/ sshuzivatel@vzdalena.ip.adresa:/cesta/kam/chceme/kopirovat/
Poznámka:
parametr -r pro rekurzivní kopírování všech souborů v uvedeném adresáři. Bez tohoto parametru scp kopíruje pouze soubor, který jmenovitě uvedeme
parametr -v pro výpis a případné ladění problémů
SCP (secure copy) je nástroj příkazového řádku, který umožňuje bezpečně kopírovat soubory a adresáře mezi dvěma umístěními.
S scp, můžete zkopírovat soubor nebo adresář:
- Z vašeho lokálního systému do vzdáleného systému.
- Ze vzdáleného systému do vašeho lokálního systému.
- Mezi dvěma vzdálenými systémy z vašeho místního systému.
Při přenosu dat pomocí scp, soubory i heslo jsou zašifrovány, takže kdokoli, kdo sleduje provoz, nezískal nic citlivého.
V tomto tutoriálu vám ukážeme, jak používat scppomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností scp.
Syntaxe příkazu SCP
Než se pustíte do toho, jak používat scppříkaz, začněme přezkoumáním základní syntaxe.
The scpsyntaxe příkazu má následující podobu:
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
OPTION– možnosti scp jako je šifra, konfigurace ssh, port ssh, limit, rekurzivní kopie atd.[user@]SRC_HOST:]file1– Zdrojový soubor.[user@]DEST_HOST:]file2– Cílový soubor
Lokální soubory by měly být zadány pomocí absolutní nebo relativní cesty, zatímco názvy vzdálených souborů by měly obsahovat specifikaci uživatele a hostitele.
scpposkytuje řadu možností, které řídí každý aspekt jeho chování. Nejpoužívanější možnosti jsou:
-P– Určuje ssh port vzdáleného hostitele.-p– Zachovává úpravy souborů a časy přístupu.-q– Tuto možnost použijte, pokud chcete potlačit ukazatel průběhu a nechybové zprávy.-C– Tato možnost vynutíscppro komprimaci dat při jejich odesílání do cílového počítače.-r– Tato možnost říkáscppro rekurzivní kopírování adresářů.
Než začnete
The scppříkaz spoléhá na sshpro přenos dat, takže k ověření na vzdálených systémech vyžaduje ssh klíč nebo heslo.
Dvojtečka ( :) ukazuji scprozlišovat mezi místními a vzdálenými lokalitami.
Abyste mohli kopírovat soubory, musíte mít alespoň oprávnění ke čtení zdrojového souboru a oprávnění k zápisu v cílovém systému.
Buďte opatrní při kopírování souborů, které sdílejí stejný název a umístění v obou systémech, scppřepíše soubory bez varování.
Při přenosu velkých souborů se doporučuje spustit scppříkaz uvnitř obrazovky nebo tmux zasedání.
Kopírování souborů a adresářů mezi dvěma systémy pomocí scp
Zkopírujte místní soubor do vzdáleného systému pomocí scppříkaz
Chcete-li zkopírovat soubor z místního do vzdáleného systému, spusťte následující příkaz:
scp file.txt remote_username@10.10.0.2:/remote/directoryKde file.txtje název souboru, který chceme zkopírovat, remote_usernameje uživatel na vzdáleném serveru, 10.10.0.2je IP adresa serveru. The /remote/directoryje cesta k adresáři, do kterého chcete soubor zkopírovat. Pokud neurčíte vzdálený adresář, soubor se zkopíruje do domovského adresáře vzdáleného uživatele.
Budete vyzváni k zadání uživatelského hesla a zahájí se proces přenosu.
remote_username@10.10.0.2's password:
file.txt 100% 0 0.0KB/s 00:00
Vynechání názvu souboru z cílového umístění zkopíruje soubor s původním názvem. Pokud chcete soubor uložit pod jiným názvem, musíte zadat nový název souboru:
scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txtPokud SSH na vzdáleném hostiteli naslouchá na jiném portu, než je výchozí 22, můžete port zadat pomocí -Pargument:
scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directoryPříkaz ke kopírování adresáře je podobný jako při kopírování souborů. Jediný rozdíl je v tom, že musíte použít -rpříznak pro rekurzivní.
Chcete-li zkopírovat adresář z místního do vzdáleného systému, použijte příkaz -rvolba:
scp -r /local/directory remote_username@10.10.0.2:/remote/directoryZkopírujte vzdálený soubor do místního systému pomocí scppříkaz
Chcete-li zkopírovat soubor ze vzdáleného do místního systému, použijte vzdálené umístění jako zdroj a místní umístění jako cíl.
Například ke zkopírování souboru s názvem file.txtze vzdáleného serveru s IP 10.10.0.2spusťte následující příkaz:
scp remote_username@10.10.0.2:/remote/file.txt /local/directoryPokud jste nenastavili přihlášení k SSH bez hesla ke vzdálenému počítači, budete požádáni o zadání uživatelského hesla.
Zkopírujte soubor mezi dvěma vzdálenými systémy pomocí scppříkaz
Na rozdíl od rsync , při použití scppro přenos souborů z jednoho na druhý vzdálený počítač se nemusíte přihlašovat k jednomu ze serverů.
Následující příkaz zkopíruje soubor /files/file.txtze vzdáleného hostitele host1.comdo adresáře /filesna vzdáleném hostiteli host2.com.
scp user1@host1.com:/files/file.txt user2@host2.com:/filesBudete vyzváni k zadání hesel pro oba vzdálené účty. Data budou přenášena přímo z jednoho vzdáleného hostitele do druhého.
Chcete-li směrovat provoz přes stroj, na kterém je příkaz vydán, použijte -3volba:
scp -3 user1@host1.com:/files/file.txt user2@host2.com:/filesZávěr
V tomto tutoriálu jste se naučili používat scppříkaz pro kopírování souborů a adresářů.
Můžete také chtít nastavit ověřování založené na klíči SSH a připojte se k serverům Linux bez zadání hesla.
Pokud se pravidelně připojujete ke stejným systémům, můžete si zjednodušit pracovní postup tím, že všechna svá připojení definujete v konfiguračním souboru SSH .
Zdroj: https://linuxize.com/post/how-to-use-scp-command-to-securely-transfer-files/