GNU/Linux >> Znalost Linux >  >> Linux

Ssh – Zkopírujte soubor zpět do místního systému pomocí Ssh?

Pokud jsem přihlášený do systému přes SSH, existuje způsob, jak zkopírovat soubor zpět do mého místního systému, aniž bych spouštěl další terminál nebo relaci obrazovky a dělal scp nebo něco podobného nebo aniž bych prováděl SSH ze vzdáleného systému zpět do místní systém?

Přijatá odpověď:

Hlavní připojení

Nejjednodušší je to plánovat předem.

Otevřete hlavní připojení poprvé. Pro následná připojení nasměrujte podřízená připojení přes stávající hlavní připojení. Ve vašem ~/.ssh/config , nastavte automatické sdílení připojení:

ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r

Pokud spustíte relaci ssh na stejném (uživateli, portu, počítači) jako existující připojení, bude druhá relace tunelována přes první. Navázání druhého připojení nevyžaduje žádné nové ověřování a je velmi rychlé.

Takže když máte aktivní připojení, můžete rychle:

  • zkopírujte soubor pomocí scp nebo rsync;
  • připojit vzdálený souborový systém pomocí sshfs.

Přeposílání

Na existujícím připojení můžete vytvořit reverzní ssh tunel. Na příkazovém řádku ssh vytvořte vzdálené předávání zadáním -R 22042:localhost:22 kde 22042 je náhodně vybrané číslo, které se liší od jakéhokoli jiného čísla portu na vzdáleném počítači. Poté ssh -p 22042 localhost na vzdáleném počítači vás připojí zpět ke zdrojovému počítači; můžete použít scp -P 22042 foo localhost: kopírovat soubory.

Toto můžete dále automatizovat pomocí RemoteForward 22042 localhost:22 . Problém je v tom, že pokud se připojíte ke stejnému počítači pomocí více instancí ssh nebo pokud port používá někdo jiný, přesměrování nedostanete.

Pokud jste od začátku nepovolili vzdálené předávání, můžete to udělat na existující relaci ssh. Zadejte Enter ~C Zadejte -R 22042:localhost:22 Zadejte .
Další informace naleznete v části „Escape characters“ v příručce.

V tomto vláknu Chyba serveru je také několik zajímavých informací.

Kopírovat a vložit

Pokud je soubor malý, můžete jej napsat a zkopírovat a vložit z výstupu terminálu. Pokud soubor obsahuje netisknutelné znaky, použijte kódování, jako je base64.

remote.example.net$ base64 <myfile
(copy the output)
local.example.net$ base64 -d >myfile
(paste the clipboard contents)
Ctrl+D

Pokud máte aktivní X forwarding, pohodlněji zkopírujte soubor na vzdáleném počítači a vložte jej lokálně. Data můžete do a z xclip přenášet nebo xsel . Pokud chcete zachovat název souboru a metadata, zkopírujte a vložte archiv.

remote.example.net$ tar -czf - myfile | xsel

local.example.net$ xsel | tar -xzf -

Linux
  1. Jak scp zpět na místní, když jsem již sshed na vzdálený počítač?

  2. SSH s autorizovanými klíči do systému Ubuntu se zašifrovaným homedir?

  3. Vzdálená úprava pomocí lokálního editoru (Linux)

  1. Jak zkopíruji soubor s názvem začínající tečkou?

  2. Rsync s výzvou SSH pro vzdálené heslo

  3. Kopírovat soubor Linux s ETA?

  1. Zlepšete výkon systému Linux pomocí noatime

  2. iptables přesměrovává místní připojení na vzdálený systém / port

  3. Mohu použít ověřování pomocí klíče SSH k přihlášení do vzdáleného systému s jiným uživatelským jménem?