GNU/Linux >> Znalost Linux >  >> Linux

4 způsoby přenosu souborů mezi vzdálenými a místními systémy přes SSH

Dříve nebo později se ocitnete v situaci, kdy budete muset nahrát soubor na vzdálený server přes SSH nebo z něj zkopírovat soubor.

Existují různé způsoby, jak můžete přenášet soubory přes SSH. Zde budu diskutovat o následujících metodách:

  1. scp:Starší příkaz, který je zastaralý
  2. rsync:Populární příkaz pro synchronizaci souborů
  3. sshfs:Připojení vzdáleného adresáře přes SSH
  4. klienti sftp:nástroj GUI pro přístup k souborům přes SFTP

Pro úspěšný přenos souborů přes SSH je třeba

  • aby měl přístup SSH mezi dvěma počítači
  • znát uživatelské jméno a heslo na vzdáleném počítači
  • IP adresa nebo název hostitele (ve stejné podsíti) vzdáleného počítače

Kromě toho se podívejme na metody pro kopírování souborů mezi vzdálenými systémy přes SSH.

Metoda 1:Ke kopírování souborů přes SSH použijte příkaz scp

Četl jsem, že scp bude zastaralý. Přesto je to můj oblíbený nástroj pro přenos souborů mezi systémy přes SSH. Proč? Protože jeho syntaxe je podobná příkazu cp.

Podívejme se, jak použít příkaz scp.

Kopírování souborů ze vzdáleného počítače do místního počítače

Zde je scénář. Chcete zkopírovat soubory ze vzdáleného systému Linux do aktuálně přihlášeného systému.

Zde je obecná syntaxe, která zkopíruje soubor z domovského adresáře uživatele na vzdáleném systému do aktuálního adresáře vašeho lokálně přihlášeného systému.

scp [email protected]_address:/home/username/filename .

Vidíte podobnost s příkazem cp? Je to téměř stejné, až na to, že musíte zadat uživatelské jméno a IP adresu s dvojtečkou (:).

Nyní mi dovolte ukázat vám reálný příklad tohoto příkazu.

Ve výše uvedeném příkladu jsem zkopíroval soubor remote.txt z /home/abhishek/my_file adresář na vzdáleném systému do aktuálního adresáře místního počítače.

To by vám mělo napovědět, že byste měli znát přesné umístění souboru na vzdáleném systému. Dokončování karet nefunguje na vzdálených systémech.

Kopírování souborů z místního počítače na vzdálený počítač

Scénář je zde mírně pozměněn. V tomto případě posíláte lokální soubor do vzdáleného systému přes SSH pomocí scp.

Toto je generická syntaxe, která zkopíruje název souboru do domovského adresáře uživatelského jména na vzdáleném systému.

scp filename [email protected]_address:/home/username

Ve výše uvedeném příkladu jsem zkopíroval local.txt soubor z aktuálního adresáře do domovského adresáře uživatele abhishek na vzdáleném systému.

Potom jsem se přihlásil do vzdáleného systému, abych ukázal, že soubor byl skutečně zkopírován.

Můžete také kopírovat adresáře

Pamatujete si, že jsem vám řekl, že mám rád scp kvůli jeho podobnosti s příkazem cp?

Stejně jako příkaz cp můžete také použít scp ke kopírování adresáře přes SSH. Syntaxe je také podobná příkazu cp. Stačí použít -r možnost.

scp -r source_dir [email protected]_address:/home/username/target_dir

Můžete s tím udělat mnohem víc. Přečtěte si několik dalších příkladů příkazu scp v tomto tutoriálu:

Metoda 2:Použijte rsync ke kopírování souborů a adresářů přes SSH

Vzhledem k tomu, že scp je zastaralé, rsync je dalším nejlepším nástrojem pro kopírování souborů mezi vzdáleným systémem přes SSH. Ve skutečnosti je v mnoha ohledech lepší než scp.

Syntaxe příkazu je stejná jako scp. Starší verze rsync musely používat rsync -e ssh ale to už není tento případ.

Kopírování souborů ze vzdáleného počítače do místního počítače

Řekněme, že chcete zkopírovat soubor z domovského adresáře uživatele na vzdáleném systému do aktuálního adresáře vašeho lokálně přihlášeného systému.

rsync [email protected]_address:/home/username/filename .

Vezměme si stejný příklad, který jste viděli u scp. Kopíruji soubor remote.txt z /home/abhishek/my_file adresář na vzdáleném systému do aktuálního adresáře místního počítače.

Kopírování souborů z místního počítače na vzdálený počítač

Zde je obecná syntaxe, která zkopíruje soubor do domovského adresáře uživatelského jména na vzdáleném systému.

rsync filename [email protected]_address:/home/username

Je čas vidět příklad ze skutečného světa. Kopíruji local.txt soubor z aktuálního adresáře do domovského adresáře uživatele abhishek na vzdáleném systému.

Co takhle kopírovat adresáře pomocí rsync?

Je to stejné. Stačí použít -r možnost s rsync zkopírovat celý adresář přes SSH mezi vzdálenými systémy.

rsync -r source_dir [email protected]_address:/home/username/target_dir

Podívejte se na tento příklad. Zkopíruji celý adresář my_file ze vzdáleného systému do místního systému.

rsync je všestranný nástroj. Je to v podstatě nástroj pro „rekurzivní synchronizaci“ obsahu mezi dvěma adresáři a je docela oblíbený pro vytváření automatických záloh.

Metoda 3:Použití SSHFS pro přístup k souborům ze vzdáleného systému přes SSH

Existuje také SSHFS (SSH Filesystem), který lze použít pro přístup ke vzdáleným souborům a adresářům. To však není příliš vhodné pouze pro kopírování souborů.

Při této metodě připojíte vzdálený adresář na váš lokální systém. Po připojení můžete kopírovat soubory mezi připojeným adresářem a místním systémem.

Možná budete muset nejprve nainstalovat sshfs na váš lokální systém pomocí správce balíčků vaší distribuce.

Na Debianu a Ubuntu můžete použít následující příkaz:

sudo apt install sshfs

Jakmile máte sshfs nainstalovaný ve vašem systému, můžete jej použít k připojení vzdáleného adresáře. Bylo by lepší vytvořit vyhrazený adresář pro bod připojení.

mkdir mount_dir

Nyní připojte požadovaný adresář na vzdálený počítač tímto způsobem:

sshfs [email protected]_address:path_to_dir mount_dir

Jakmile je připojen, můžete kopírovat soubory do tohoto adresáře nebo z tohoto adresáře, jako by byl na vašem lokálním počítači.

cp local_file mount_dir

Nezapomeňte, že jste tento soubor připojili. Jakmile je vaše práce hotová, měli byste ji také odpojit:

umount mount_dir

Zde je příklad, kde jsem připojil my_file adresáře ze vzdáleného systému do remote_dir adresář v místním systému. Zkopíroval jsem remote.txt soubor do místního systému a poté odpojili adresář.

Metoda 4:Použijte klienta SFTP založeného na grafickém uživatelském rozhraní pro přenos souborů mezi vzdálenými systémy

Jako poslední možnost můžete použít FTP klienta pro přenos souborů mezi vzdálenými a lokálními systémy.

FileZilla je jedním z nejpopulárnějších multiplatformních FTP klientů. Můžete snadno nainstalovat do místního systému.

Po instalaci přejděte na Soubor->Správce webu a přidejte podrobnosti o vzdáleném systému, jako je IP adresa, číslo portu SSH, uživatelské jméno a heslo.

Jakmile se připojíte, uvidíte rozdělené okno, které ukazuje místní souborový systém vlevo a vzdálený souborový systém vpravo.

Chcete-li soubor přenést, přetáhněte soubory zleva doprava nebo zprava doleva. Ve spodní části se zobrazí ukazatel průběhu.

Jakou metodu preferujete?

V pořádku! Ukázal jsem různé metody příkazového řádku a GUI, které lze použít pro kopírování souborů přes SSH.

Nyní je na vás, abyste se rozhodli, kterou metodu zde použijete. Do komentáře uveďte preferovanou metodu přenosu souborů přes SSH.


Linux
  1. Bezpečně přenášejte soubory a složky mezi počítači pomocí Croc

  2. Jak přenášet soubory mezi místními a vzdálenými počítači pomocí protokolu SFTP

  3. Jak přenášet soubory mezi servery v Linuxu pomocí SCP a FTP

  1. Použití protokolu SFTP k přenosu souborů mezi místními a vzdálenými počítači

  2. Rozdíl mezi /opt a /usr/local?

  3. Použijte Scp k přenosu souboru z místního adresáře X do vzdáleného adresáře Y?

  1. Příkaz SCP Linux – Jak přenášet soubory SSH ze vzdáleného do místního

  2. Jak přenášet soubory v Linuxu pomocí SCP a Rsync

  3. Používat zařízení přes SSH?