GNU/Linux >> Znalost Linux >  >> Linux

Jak odeslat data do místní schránky ze vzdálené relace SSH

Obnovuji toto vlákno, protože jsem hledal stejné řešení a našel jsem jedno, které mi vyhovuje. Je to malá úprava návrhu od OSX Daily.

V mém případě používám terminál na svém místním počítači OSX k připojení k linuxovému serveru přes SSH. Stejně jako OP jsem chtěl mít možnost přenášet malé kousky textu z terminálu do mé místní schránky pouze pomocí klávesnice.

Podstata řešení:

commandThatMakesOutput | ssh desktop pbcopy

Při spuštění v relaci ssh na vzdáleném počítači tento příkaz převezme výstup commandThatMakesOutput (např. ls, pwd) a přesměruje výstup do schránky místního počítače (název nebo IP „desktop“). Jinými slovy, používá vnořené ssh:jste připojeni ke vzdálenému počítači prostřednictvím jedné relace ssh, tam provedete příkaz a vzdálený počítač se připojí k vaší ploše prostřednictvím jiné relace ssh a vloží text do vaší schránky.

Vyžaduje to, aby byl váš desktop nakonfigurován jako ssh server (což nechám na vás a googlu). Je to mnohem snazší, pokud jste nastavili klíče ssh pro usnadnění rychlého použití ssh, nejlépe pomocí přístupové fráze pro relaci nebo podle toho, co vaše potřeby zabezpečení vyžadují.

Další příklady:

ls  | ssh desktopIpAddress pbcopy
pwd |  ssh desktopIpAddress pbcopy

Pro usnadnění jsem vytvořil bash soubor, který zkrátí požadovaný text za rourou:

#!/bin/bash
ssh desktop pbcopy

V mém případě používám speciálně pojmenovaný klíč

Uložil jsem jej pod názvem souboru cb (moje mnemotechnická pomůcka (schránka). Vložte skript někam do cesty, udělejte jej spustitelný a voila:

ls | cb

Port obráceného tunelu na ssh serveru

Všechna stávající řešení buď potřebují:

  • X11 na klientovi (pokud jej máte, xclip na serveru funguje skvěle) nebo
  • klient a server musí být ve stejné síti (což neplatí, pokud se v práci pokoušíte o přístup k domácímu počítači).

Zde je další způsob, jak to udělat, i když budete muset upravit způsob, jakým ssh vstupujete do svého počítače.

Začal jsem to používat a není to zdaleka tak děsivé, jak to vypadá, takže to zkuste.

Klient (spuštění relace ssh)

ssh [email protected] -R 2000:localhost:2000

(nápověda:udělejte z toho klávesovou zkratku, abyste ji nemuseli psát)

Klient (další karta)

nc -l 2000 | pbcopy

Poznámka:pokud nemáte pbcopy pak stačí tee do souboru.

Server (uvnitř relace SSH)

cat some_useful_content.txt | nc localhost 2000

Další poznámky

Ve skutečnosti, i když jste uprostřed sezení ssh, existuje způsob, jak zahájit tunel, ale nechci lidi strašit od toho, co ve skutečnosti není tak špatné, jak to vypadá. Podrobnosti ale doplním později, pokud uvidím zájem


Našli jsme skvělé řešení, které nevyžaduje reverzní připojení ssh!

Na vzdáleném hostiteli můžete použít xclip spolu s přesměrováním ssh X11 a XQuartz v systému OSX.

Postup nastavení:

  1. Nainstalujte XQuartz (udělal jsem to s receptem Soloist + pivotal_workstation::xquartz, ale nemusíte)
  2. Spusťte XQuartz.app
  3. Otevřete předvolby XQuartz ( +, )
  4. Ujistěte se, že „Povolit synchronizaci“ a „Aktualizovat pracovní plochu, když se změní SCHRÁNKA“ jsou kontrolovány
  5. ssh -X remote-host "echo 'hello from remote-host' | xclip -selection clipboard"

Můj oblíbený způsob je ssh [remote-machine] "cat log.txt" | xclip -selection c . To je nejužitečnější, když nechcete (nebo nemůžete) ssh ze vzdáleného na místní.

Edit:na Cygwin ssh [remote-machine] "cat log.txt" > /dev/clipboard .

Edit:Užitečný komentář od nbren12:

Téměř vždy je možné nastavit zpětné připojení ssh pomocí přesměrování portů SSH. Stačí přidat RemoteForward 127.0.0.1:2222 127.0.0.1:22 na záznam serveru ve vašem místním .ssh/config a poté spusťte ssh -p 2222 127.0.0.1 na vzdáleném počítači, který pak přesměruje připojení na místní počítač. – nbren12


Linux
  1. Jak zkopírovat soubor ze vzdáleného serveru do místního počítače?

  2. Jak se mohu odhlásit z otevřené vzdálené relace SSH?

  3. Jak mohu zkopírovat výstup ze vzdáleného příkazu do místní schránky?

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

  2. Spustí 1 ze vzdálené relace (přes VPN) ssh ssh připojení

  3. Jak načíst více souborů ze vzdáleného počítače na místní pomocí Ansible

  1. Jak na SSH na Linuxu z Androidu

  2. Obsluha Ctrl-c v relaci Ssh?

  3. Jak zabránit tomu, aby relace SSH vypršela