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/directory

Kde 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.txt

Pokud 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/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 -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/directory

Zkopí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/directory

Pokud 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:/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 stroj, na kterém je příkaz vydán, použijte -3volba:

scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files

Zá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/