Was ist ein umgekehrter SSH-Tunnel? (und wie man es benutzt)

Benötigen Sie SSH auf einem unzugänglichen Linux-Computer? Lassen Sie sich anrufen und dann die Verbindung herstellen, um Ihre eigene Remote-SSH-Sitzung zu erhalten. Wir zeigen Ihnen wie.

Wenn Sie den umgekehrten SSH-Tunnel verwenden möchten

Manchmal sind Remotecomputer schwer zu erreichen. Für die Site, auf der sie sich befinden, gelten möglicherweise strenge Firewall-Regeln, oder der lokale Administrator hat eine komplexe Einrichtung. Netzwerkadressübersetzung Regeln. Wie kann man auf einen solchen Computer zugreifen, wenn man eine Verbindung herstellen muss?

Lassen Sie uns einige Labels erstellen. Ihr Computer ist der lokal Computer, weil es in Ihrer Nähe ist. Der Computer, mit dem Sie eine Verbindung herstellen möchten, ist der Fernbedienung Computer, weil es sich an einem anderen Ort als Sie befindet.

Um die in diesem Artikel verwendeten lokalen und Remote-Computer zu unterscheiden, heißt der Remote-Computer “howtogeek” und führt Ubuntu Linux (mit lila Terminalfenstern) aus. Der lokale Computer heißt “Sulaco” und führt Manjaro Linux aus (mit gelben Terminalfenstern).

Normalerweise würden Sie a anzünden SSH-Verbindung vom lokalen Computer und stellen Sie eine Verbindung zum Remote-Computer her. Dies ist in dem von uns beschriebenen Netzwerkszenario keine Option. Das spezifische Netzwerkproblem spielt keine Rolle. Dies ist nützlich, wenn Sie SSH nicht direkt auf einem Remotecomputer verwenden können.

Wenn die Netzwerkeinrichtung auf Ihrer Seite jedoch einfach ist, kann der Remotecomputer eine Verbindung zu Ihnen herstellen. Dies allein reicht für Ihre Anforderungen nicht aus, da Sie keine funktionierende Befehlszeilensitzung auf dem Remotecomputer erhalten. Aber es ist ein Anfang. Sie haben eine Verbindung zwischen den beiden Computern hergestellt.

Die Antwort liegt im umgekehrten SSH-Tunnel.

Was ist ein umgekehrter SSH-Tunnel?

Über den umgekehrten SSH-Tunnel können Sie diese hergestellte Verbindung verwenden, um eine neue Verbindung zwischen Ihrem lokalen Computer und dem Remotecomputer herzustellen.

Weil die ursprüngliche Verbindung gekommen ist von entfernter Computer beim Wenn Sie es verwenden, um in die andere Richtung zu gehen, verwenden Sie es “in die entgegengesetzte Richtung”. Und weil SSH sicher ist, fügen Sie eine sichere Verbindung in eine vorhandene sichere Verbindung ein. Dies bedeutet, dass Ihre Verbindung zum Remotecomputer als privater Tunnel innerhalb der ursprünglichen Verbindung fungiert.

Wir kommen also zum Namen “Reverse SSH Tunnel”.

Wie es funktioniert?

Der umgekehrte SSH-Tunnel basiert darauf, dass der Remotecomputer die hergestellte Verbindung verwendet, um auf neue Verbindungsanforderungen vom lokalen Computer zu warten.

Der Remotecomputer überwacht einen Netzwerkanschluss auf dem lokalen Computer. Wenn eine SSH-Anforderung an diesen Port erkannt wird, leitet sie diese Verbindungsanforderung an sich selbst weiter unten in der hergestellten Verbindung weiter. Dies stellt eine neue Verbindung bereit von lokaler Computer beim der Remote-Computer.

verbunden :  YouTube Rewind 2019 zeigt, was beliebt ist

Es ist einfacher einzurichten als zu beschreiben.

Verwenden von SSH-Reverse-Tunneling

SSH wird bereits auf Ihrem Linux-Computer installiert, Sie müssen jedoch möglicherweise den SSH-Daemon (sshd) starten, wenn der lokale Computer noch nie zuvor SSH-Verbindungen akzeptiert hat.

sudo systemctl start sshd


Verwenden Sie diesen Befehl, damit der SSH-Dämon bei jedem Neustart Ihres Computers gestartet wird:

sudo systemctl enable sshd

Auf dem Remotecomputer verwenden wir den folgenden Befehl.

  • Das -R (umgekehrte) Option sagt ssh Diese neuen SSH-Sitzungen müssen auf dem Remotecomputer erstellt werden.
  • Das “43022: localhost: 22” zeigt an ssh Anforderungen zum Herstellen einer Verbindung mit Port 43022 des lokalen Computers sollten an Port 22 des Remotecomputers weitergeleitet werden. Port 43022 wurde gewählt, weil es ist als nicht zugeordnet aufgeführt. Dies ist kein spezielles Problem.
  • [email protected] ist das Benutzerkonto, bei dem sich der Remotecomputer am lokalen Computer anmeldet.
ssh -R 43022:localhost:22 [email protected]

Möglicherweise erhalten Sie eine Warnung, dass Sie sich noch nie am lokalen Computer angemeldet haben. Möglicherweise wird auch eine Warnung angezeigt, wenn Verbindungsdetails zur Liste der erkannten SSH-Hosts hinzugefügt werden. Was Sie gegebenenfalls sehen, hängt davon ab, ob bereits Verbindungen zwischen dem Remotecomputer und dem lokalen Computer hergestellt wurden.

Sie werden aufgefordert, das Kennwort für das Konto einzugeben, mit dem Sie sich am lokalen Computer anmelden.

Beachten Sie, dass sich die Eingabeaufforderung nach dem Herstellen der Verbindung von dave @ howtogeek in dave @ sulaco ändert.

Wir sind jetzt vom Remotecomputer aus mit dem lokalen Computer verbunden. Dies bedeutet, dass wir Bestellungen an ihn senden können. Lass es uns benutzen who Befehl, um die Verbindungen auf dem lokalen Computer anzuzeigen.

who

Wir können sehen, dass sich die Person mit dem Benutzerkonto Dave als am lokalen Computer angemeldet hat und der Remotecomputer sich (mit denselben Benutzeranmeldeinformationen) über die IP-Adresse 192.168 .4.25 angemeldet hat.

Bald: So ermitteln Sie das aktuelle Benutzerkonto unter Linux

Verbindung zum Remotecomputer

Da die Verbindung vom Remotecomputer erfolgreich ist und auf Verbindungen gewartet wird, können wir versuchen, vom lokalen Computer aus eine Verbindung zum Remotecomputer herzustellen.

Der Remotecomputer überwacht Port 43022 auf dem lokalen Computer. Um eine Verbindung mit dem Remote-Computer herzustellen, bitten wir Sie, etwas uninteressant ssh Diese Verbindungsanforderung wird an den Remotecomputer gesendet, um eine Verbindung zum lokalen Computer über Port 43022 herzustellen.

ssh localhost -p 43022


Wir werden aufgefordert, das Kennwort für das Benutzerkonto einzugeben und uns dann vom lokalen Computer aus am Remotecomputer anzumelden. Unser Manjaro-Computer sagt glücklich: “Willkommen bei Ubuntu 04 / 18.2 LTS”.

verbunden :  Die ideale Haltung bei der Verwendung eines Laptops ist einfach

umgekehrte Verbindung des SSH-Tunnels mit dem Remote-Computer

Beachten Sie, dass die Eingabeaufforderung von dave @ sulaco in dave @ howtogeek geändert wurde. Wir haben unser Ziel erreicht, eine SSH-Verbindung mit unserem schwer erreichbaren Remotecomputer herzustellen.

Verwenden von SSH mit Schlüsseln

Um die Verbindung des Remotecomputers mit dem lokalen Computer zu erleichtern, können wir SSH-Schlüssel konfigurieren.

Geben Sie auf dem Remotecomputer den folgenden Befehl ein:

ssh-keygen


Sie werden aufgefordert, eine Passphrase einzugeben. Sie können die Eingabetaste drücken, um die Passphrasenfragen zu ignorieren. Dies wird jedoch nicht empfohlen. Dies würde bedeuten, dass jeder auf dem Remotecomputer eine SSH-Verbindung zu Ihrem lokalen Computer herstellen kann, ohne nach einem Kennwort gefragt zu werden.

Drei oder vier durch Symbole getrennte Wörter bilden eine starke Passphrase.


Ihre SSH-Schlüssel werden generiert.

Wir müssen den öffentlichen Schlüssel auf den lokalen Computer übertragen. Verwenden Sie diesen Befehl:

ssh-copy-id [email protected]


Sie werden aufgefordert, das Kennwort des Benutzerkontos einzugeben, mit dem Sie eine Verbindung herstellen. In diesem Fall: [email protected]

Wenn Sie zum ersten Mal eine Verbindungsanforderung zwischen dem Remotecomputer und dem lokalen Computer stellen, müssen Sie die Passphrase angeben. Sie müssen es für zukünftige Verbindungsanfragen nicht erneut eingeben, solange dieses Terminalfenster geöffnet bleibt.

Passphrase-Anforderungsdialog

Bald: Erstellen und Installieren von SSH-Schlüsseln aus der Linux-Shell

Nicht alle Tunnel sind beängstigend

Einige Tunnel können dunkel und kurvenreich sein, aber der umgekehrte SSH-Tunnel ist nicht allzu schwierig zu navigieren, wenn Sie die Beziehung zwischen dem Remotecomputer und dem lokalen Computer direkt im Kopf behalten können. Dann kehren Sie es um.

Moyens Staff
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.