Wie kann ich innerhalb einer SSH-Sitzung einen Befehl auf meinem lokalen Computer eingeben?

Wie kann ich innerhalb einer SSH-Sitzung einen Befehl auf meinem lokalen Computer eingeben?

Beispiel-Anwendungsfall:

  1. Ich arbeite an meinem Laptop mit Mac OS X (A) und bin bei meinem Entwicklungsserver angemeldet (B) über SSH.
  2. Ich habe ein Skript, das eine GitHub-URL für die Datei/den Zweig generiert, die/den ich derzeit in meinem Editor geöffnet habe (B).
  3. Ich möchte diese URL in einem Browser auf meinem Laptop öffnen (A).

Andere Anwendungsfälle könnten sein:

  • Aktualisieren Sie meinen Browser jedes Mal, wenn ich eine Datei speichere
  • Ein Lied wird lokal abgespielt, wenn ich eineGit-Befehl
  • Öffnen Sie ein Jira-Ticket, das dem von mir ausgecheckten Zweig entspricht.

Antwort1

Sie können einen SSH-Reverse-Tunnel verwenden. Das funktioniert folgendermaßen: Führen Sie dies auf der Maschine aus, die Sie hier verwenden. Dies remote_serverist der Name des Remote-Servers:

ssh -R 13000:localhost:22 remote_server

Und zeigen Sie es im Bild auf Ihrem local machinevon remote server:

ssh <USERNAME>@localhost -p 13000 "DISPLAY=:0 ristretto <IMAGE>"

BEARBEITEN: Auf einem Mac OS-Rechner ist möglicherweise kein X-Server installiert. Ich verwende ihn nicht, aber die Grundidee bleibt dieselbe. Der Vorteil der Verwendung von Reverse Tunneling besteht darin, dass Ihr lokaler Rechner keine öffentliche IP-Adresse haben muss.

Antwort2

Dies ist vielleicht nicht die eleganteste Vorgehensweise, aber da Sie Mac OS X verwenden, fällt mir nur ein, wenn Sie bereits per Remote auf die andere Maschine zugreifen, einen SSH-Befehl wie diesen an Ihren Host zurückzusenden. Die wichtigste Voraussetzung ist, dass Ihr SSH-Server auf Ihrem Mac OS X-Laptop läuft und dass die Firewall-Regeln Ihres Routers SSH-Verbindungen auf Port 22 zulassen, damit dies funktioniert.

Nehmen wir also an, Ihr Laptop heißt und Sie möchten eine URL wie von der Remote-Maschine aus machineAöffnen (http://google.comB), dann würden Sie einfach diesen SSH-Befehl auf dem Computer ausführenB.

ssh username@machineA 'open http://google.com'

Dadurch wird eine SSH-Verbindung zu Ihrem lokalen Computer hergestellt und der Befehl ausgeführt, open http://google.comder ein Browserfenster (basierend auf Ihrem Standardbrowser) öffnet, das zu der ihm übergebenen URL führt http://google.com.

verwandte Informationen