SCP (secure copy) je nástroj příkazového řádku, který vám umožňuje bezpečně kopírovat soubory a adresáře mezi dvěma umístěními.
Pomocí scp
, můžete zkopírovat soubor nebo adresář:
- Z vašeho místního systému do vzdáleného systému.
- Ze vzdáleného systému do vašeho místní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, aby nikdo, kdo sleduje provoz, nezískal nic citlivého.
V tomto tutoriálu vám ukážeme, jak používat scp
pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností scp.
SCP příkaz syntaxe #
Než se pustíte do toho, jak používat scp
příkaz, začněme zopakováním základní syntaxe.
scp
syntaxe příkazu má následující tvar:
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
Místní soubory by měly být specifikovány pomocí absolutní nebo relativní cesty, zatímco názvy vzdálených souborů by měly obsahovat specifikaci uživatele a hostitele.
scp
poskytuje řadu možností, které řídí každý aspekt jeho chování. Nejpoužívanější možnosti jsou:
-P
- Určuje port ssh 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 volba vynutíscp
zkomprimuje data při jejich odesílání do cílového počítače.-r
- Tato volba říkáscp
pro rekurzivní kopírování adresářů.
Než začnete #
scp
příkaz spoléhá na ssh
pro přenos dat, takže k ověření na vzdálených systémech vyžaduje ssh klíč nebo heslo.
Dvojtečka (:
) je způsob scp
rozlišovat mezi místním a vzdáleným umístěním.
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é v obou systémech sdílejí stejný název a umístění, scp
přepíše soubory bez varování.
Při přenosu velkých souborů se doporučuje spustit scp
příkaz uvnitř obrazovky nebo tmuxsession.
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í scp
Pří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 [email protected]:/remote/directory
Kde file.txt
je název souboru, který chceme zkopírovat, remote_username
je uživatel na vzdáleném serveru, 10.10.0.2
je IP adresa serveru. /remote/directory
je 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.
Heslo uživatele[email protected]'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 [email protected]:/remote/directory/newfilename.txt
Pokud SSH na vzdáleném hostiteli naslouchá na jiném portu, než je výchozí 22, můžete port specifikovat pomocí -P
argument:
scp -P 2322 file.txt [email protected]:/remote/directory
Pří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 -r
příznak pro rekurzivní.
Chcete-li zkopírovat adresář z místního do vzdáleného systému, použijte -r
možnost:
scp -r /local/directory [email protected]:/remote/directory
Zkopírujte vzdálený soubor do místního systému pomocí scp
Pří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.txt
ze vzdáleného serveru s IP 10.10.0.2
spusťte následující příkaz:
scp [email protected]:/remote/file.txt /local/directory
Pokud jste na vzdáleném počítači nenastavili přihlášení SSH bez hesla, budete požádáni o zadání uživatelského hesla.
Kopírování souboru mezi dvěma vzdálenými systémy pomocí scp
Příkaz #
Na rozdíl od rsync
, při použití scp
pro 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.txt
ze vzdáleného hostitele host1.com
do adresáře /files
na vzdáleném hostiteli host2.com
.
scp [email protected]:/files/file.txt [email protected]:/files
Budete 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 počítač, na kterém je příkaz vydán, použijte -3
možnost:
scp -3 [email protected]:/files/file.txt [email protected]:/files
Závěr č.
V tomto tutoriálu jste se naučili používat scp
příkaz ke kopírování souborů a adresářů.
Můžete také chtít nastavit ověřování na základě klíče SSH a připojit se k serverům Linux bez zadává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.