SSH von einer Remote-SSH-Sitzung zurück zum lokalen Computer


12

Ich versuche etwas ziemlich ungewöhnliches (für mich jedenfalls) mit SSH zu machen und ich kann es nicht zum Laufen bringen, hoffentlich können Sie helfen.

Ich möchte mit SSH von meinem Mac aus eine Verbindung zu einem Remote-Server herstellen. So weit, ist es gut. Jetzt das knifflige Bit, mit der Verbindung zum Remoteserver hergestellt möchte ich dann eine Verbindung vom Remoteserver ZURÜCK zum lokalen Rechner initiieren. Ich weiß, verrückt. Grundsätzlich muss ich durch diese Rahmen springen, um den Remote-Server durchsuchen und dann Dateiinformationen an meinen lokalen Computer zurücksenden zu können, damit eine Anwendung auf dem lokalen Computer mit ihnen umgehen kann. Hoffentlich macht das Sinn!

In dem Moment, in dem ich nach dem Anmelden am Remote-Server SSH auf den lokalen Computer zurücksende, bleibt das Terminal einfach stehen und surrt, auch mit -v gibt es keine Fehler.

Ich versuche herauszufinden, wo ich anrufen soll, indem ich mir die Ausgabe der Variablen $ SSH_CLIENT ansehe, aber ich habe eine Standard-Vanille-Internetverbindung (keine statische IP-Adresse). Ich denke, das könnte das Problem verursachen.

Dinge, die ich festgestellt habe: Ich bin auf einem Mac (OS X 10.6.4) und habe die Remote-Anmeldung in den Systemeinstellungen / -freigaben aktiviert. Wenn ich versuche, von einem anderen Computer im LAN aus SSH auf meinem Mac auszuführen, kann ich keine Probleme mit der Verbindung herstellen. Wenn ich versuche, SSH von meinem Remote-Server auf einen anderen Server (nicht auf meinen lokalen Computer) zu übertragen, kann ich ohne Probleme eine Verbindung herstellen.

Die obigen Tatsachen lassen mich denken, dass ich in Bezug auf Firewalls usw. auf den lokalen und Remote-Computern im Klaren bin.

Ich bin mir sicher, dass ich hier etwas ganz Offensichtliches vermissen muss, aber für mein ganzes Leben kann ich es nicht in den Griff bekommen.

Jede Hilfe, Links oder allgemeines Anstupsen in die richtige Richtung wäre sehr dankbar!


Sie können den Remote-Server mit ssh durchsuchen. Oder versuchst du afs zu benutzen? Wie wäre es mit Portforwardings und / oder SFTP / SCP?
Andreas Rehm

Hallo. Ja, ich kann ohne Probleme eine Verbindung zum Remote-Server herstellen und die Verzeichnisstruktur durchsuchen. Ich bin mir nicht sicher, was du meinst, sorry. Grundsätzlich sieht der Plan so aus: Ich möchte von meinem lokalen Mac aus auf meinen Remote-Linux-Server sshen, nach einer Datei suchen und sie dann über die hergestellte Verbindung zurückleiten (oder eine neue Verbindung auf der Grundlage der bereits hergestellten Verbindung erstellen) Der lokale Computer, auf dem eine Mac-App die Daten liest / bearbeitet, bevor sie an den Server zurückgesendet werden. Ich bin nicht besonders aufgeregt, wie ich dies in Bezug auf die Einbeziehung anderer Protokolle erreiche.
29.

Antworten:


9

Wenn Sie sich bei der Rückkehr zu Ihrem lokalen Netzwerk anmelden können, bevor Sie auflegen, ist dies nicht die Antwort. Wenn Sie nicht so weit kommen, kehren Sie wahrscheinlich nicht zu Ihrem Mac zurück (entweder kommen Sie nicht weiter oder treffen Sie SSH auf einem Gateway). Versuchen Sie es mit einem Reverse-Tunnel (dafür muss GatewayPorts in sshd_config auf Ihrem Server auf On gesetzt sein, aber ich glaube, dies ist die Standardeinstellung): Damit
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
sollten Sie wie gewohnt eine Verbindung zum Server herstellen können, aber auch einen Tunnel öffnen, damit Sie wieder eine Verbindung herstellen können port 2000 (jeder port über 1024 sollte funktionieren), alsoyou@yourserver$ ssh -p2000 user@localhost

EDIT: Hostname in localhost geändert


2
Sie müssen user @ localhost im letzten Befehl verwenden
b0fh

1
Das war hilfreich, es bringt mich fast dahin, wo ich sein möchte! Ich kann die Verbindung mit dem Reverse-Tunnel wie oben beschrieben herstellen und dann mit ssh -p 2000 i0n @ localhost auf meinen lokalen Mac zurücksenden. Wie kann ich dies erreichen, ohne vorher zu wissen, dass ich diese Funktionalität benötige? Mit anderen Worten mit einer bestehenden und standardmäßigen ssh-Verbindung. Ist das möglich?
29.

Danke b0fh, ich war auf dem Weg ins Bett, als ich das geschrieben habe =) i0n - instinktiv möchte ich sagen, dass Sie eine bestehende Verbindung nicht ändern können, um dies zu tun, aber PuTTY kann es, also muss es einen Weg geben. Sie könnten jederzeit eine neue SSH-Verbindung mit einem Tunnel senden, wenn Sie eine Rückleitung benötigen, aber ich vermute, dass dies programmgesteuert erfolgen wird, sodass dies möglicherweise keine Option darstellt. Look up Expect - Wenn eine Sprache über SSH verfügbar ist, ist dies der Fall.
James L

2

Ist Ihr lokaler Computer vom Server aus erreichbar? Kannst du es anpingen? Ich bitte darum, weil das, was Sie tun, funktionieren sollte, wenn Ihre Maschine zugänglich ist. Ihr Server ist im Internet oder im LAN, das gleiche Subnetz?

Wie auch immer, wenn Sie nur eine Datei bearbeiten müssen, warum verwenden Sie nicht einfach scp, um die Datei auf Ihren lokalen Computer zu kopieren? Sie können ssh verwenden, um auf dem Remote-Server nach der Datei zu suchen, und wenn Sie den Pfad haben, geben Sie auf Ihrem lokalen Computer (in einem anderen Terminal) Folgendes ein:

scp user@server:/path/to/file/on/server /local/path/to/save/file

Um die Datei zurückzusetzen, müssen Sie die Pfade erneut umschalten.

Hinweis: Sie benötigen keine anfängliche ssh-Verbindung, um scp zu verwenden - es wird eine neue erstellt

Dies ist oben beschrieben, wenn Sie im Terminal darauf zugreifen müssen. Unter Linux (und natürlich auf einem Mac, aber ich weiß nicht, wie das geht) können Sie einen SSH-Remote-Standort in Netzwerken bereitstellen und die Verbindung so verwenden, wie Sie eine lokale Festplatte verwenden (dies ist SFTP und die Verbindung hat die Form: sftp://user@server:/path/to/mountund ich denke, dies ist, was Sie anstelle einer Remote-Terminal-Verbindung benötigen, damit Sie die Datei direkt mit der Mac-Anwendung bearbeiten können.


1

Vielleicht möchten Sie auch einen Blick darauf werfen sshfs(dazu benötigen Sie MacFuse ). Auf diese Weise können Sie Verzeichnisse auf dem Remotecomputer bereitstellen und wie normale Ordner auf Ihrem Computer darauf zugreifen. Darüber hinaus können Sie noch sshin die Maschine hinein und die benötigten Dateien erstellen / durchsuchen. Das Übertragen ist dann so einfach wie das Übertragen lokaler Dateien.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.