SSH-Verbindung über Localhost zuordnen

SSH-Verbindung über Localhost zuordnen

Ich bin nicht sicher, ob das, was ich versuche, möglich ist, aber ich versuche, eine SSH-Verbindung mit Portweiterleitung über den lokalen Host herzustellen.

Der Grund, warum ich das tun möchte, ist, dass ich eine Konfiguration bei einem Cloud-Anbieter habe, bei der eine Instanz bei jeder Initialisierung eine andere IP-Adresse erhält, und das bedeutet, dass ich bei jedem Durchlauf einige Einstellungen in meiner Entwicklungsumgebung ändern muss. Ich habe mich gefragt, ob ich das irgendwie durch eine statische Localhost-Einstellung steuern kann, damit es etwas weniger mühsam wird.

Im Moment kann ich mich also wie folgt verbinden und habe einige Portweiterleitungen hinzugefügt:

ssh [email protected] -L2222:localhost:2222

Meine Hoffnung war, dass ich dann etwas tun könnte wie:

ssh luca@localhost -p 2222

aber dies kommt mit dem Fehler:

ssh_exchange_identification: read: Connection reset by peer

Ich bin überrascht, dass die Verbindung nicht abgelehnt wurde, es keine Zeitüberschreitung oder so etwas gibt und ich mich daher frage, ob es sich hier um ein Einstellungsproblem handelt.

Antwort1

Ich habe eine Konfiguration bei einem Cloud-Anbieter, bei der eine Instanz bei jeder Initialisierung eine andere IP-Adresse erhält. Das bedeutet, dass ich bei jedem Durchlauf einige Einstellungen in meiner Entwicklungsumgebung ändern muss. Ich habe mich gefragt, ob ich das irgendwie durch eine statische Localhost-Einstellung steuern kann, damit es etwas weniger mühsam wird.

Die übliche Methode zur Lösung dieses Problems ist ... DNS. Erstellen Sie eine Subdomäne mit sehr niedriger TTL und aktualisieren Sie ihre A/AAAA-Einträge, damit sie bei jeder Neuerstellung auf die neue Instanz verweisen. Einige Cloud-Anbieter können dies möglicherweise sogar automatisieren.

(Wenn globales DNS nicht funktioniert, würde /etc/hosts auch funktionieren.)

Im Moment kann ich mich also wie folgt verbinden und habe einige Portweiterleitungen hinzugefügt:

ssh [email protected] -L2222:localhost:2222

Ihr Remote-Server ist wahrscheinlich nicht so konfiguriert, dass er auf Port 2222 auf SSH-Verbindungen wartet. Er ist nur für den Standardport 22 konfiguriert. Die von Ihnen gewünschte Weiterleitungsoption lautet also:

-L 2222:localhost:22

Dies 2222ist der Port, der auf Ihrem Computer geöffnet ist. Dies localhost:22ist das endgültige Ziel, zu dem der Server eine Verbindung herzustellen versucht.

Ich bin überrascht, dass die Verbindung nicht abgelehnt wurde, es keine Zeitüberschreitung oder so etwas gibt und ich mich daher frage, ob es sich hier um ein Einstellungsproblem handelt.

Die SSH- -LWeiterleitung funktioniert nicht auf Paketebene wie die Portweiterleitung Ihres Routers. Sie funktioniert auf TCP-Ebene – der Clientselbstwartet auf Verbindungen und fordert den Server bei jeder empfangenen Verbindung auf, eine Verbindung zum endgültigen Ziel herzustellen.

Es gibt also drei verkettete Verbindungen: Client Nr. 2 → Client Nr. 1 → Server → Ziel.

Das bedeutet, dass, wenn der Server keine Verbindung herstellen kann, Client #1 (der die Weiterleitung durchführt) unmöglich einen "Verbindung abgelehnt"-Fehler für Client #2 erzeugen kann, da die lokale Verbindung tatsächlichakzeptiertbereits. Das einzige, was es tun kann, ist, die bestehende Verbindung zu schließen, ohne Daten zu übertragen. Daher „Verbindung vom Peer zurückgesetzt“.

verwandte Informationen