SSH-Tunnelfehler "ssh_exchange_identification: Verbindung vom Remote-Host geschlossen"

10

Ich versuche, einen SSH-Tunnel von meinem Büromaschinen zu meinem Heimcomputer zu verwenden, und erhalte eine Fehlermeldung, wenn ich versuche, ihn zu verwenden.

Was ich tue, ist eine Shell wie folgt zu starten:

ssh -gL 12345:my.home.domain:22 my.home.domain

Das gibt mir eine richtige Hülle, kein Problem. Was ich dann normalerweise mache, ist ssh zu meinem Heimcomputer über diesen Büromaschinen, wie folgt:

ssh -p 12345 127.0.0.1

Dies hat bei mir immer funktioniert, bis ich letzte Woche ein neues System auf meinem Heimcomputer eingerichtet habe (Wechsel von Ubuntu zu Debian). Jetzt bekomme ich eine Fehlermeldung. Ich kann meine anfängliche SSH-Verbindung immer noch öffnen, aber wenn ich versuche, diesen Tunnel zu verwenden, wird (auf dem Büromaschinen) der folgende Fehler angezeigt:

ssh_exchange_identification: Connection closed by remote host

Wenn das passiert, wird die offene Hülle, durch die ich den Tunnelbau eingerichtet habe, mit dieser Linie bespuckt:

channel 3: open failed: connect failed: Connection timed out

An diesem Punkt bin ich ratlos. Wenn weitere Informationen benötigt werden, werde ich diese gerne veröffentlichen.

============= weiter ==============

Nachdem ich weiter herumgespielt habe, habe ich festgestellt, dass ich eine andere Antwort vom Server (also von meinem Heimcomputer) erhalte, wenn ich versuche, an den verschiedenen Ports zu telneten. Wenn ich es versuche:

telnet my.home.domain 22

Ich bekomme das zurück:

Trying <my ip address>...
Connected to <my domain>.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2

Welches ist, was ich erwarten würde. Nach dem Einrichten des Tunnels und dem anschließenden Telnetting wird folgende Antwort angezeigt:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

============== und noch weiter ==================

Wie pro kbulgrien ‚Vorschlag s, hier ist die Ausgabe von der Client - Maschine mit der Option -v:

ssh -vp 24600 127.0.0.1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14. März 2012
debug1: Konfigurationsdaten lesen / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config Zeile 19: Anwenden von Optionen für *
debug1: Verbindung zu 127.0.0.1 [127.0.0.1] Port 24600 herstellen.
debug1: Verbindung hergestellt.
debug1: Identitätsdatei /home/jacob/.ssh/id_rsa Typ -1
debug1: Identitätsdatei /home/jacob/.ssh/id_rsa-cert Typ -1
debug1: Identitätsdatei /home/jacob/.ssh/id_dsa Typ -1
debug1: Identitätsdatei /home/jacob/.ssh/id_dsa-cert Typ -1
debug1: Identitätsdatei /home/jacob/.ssh/id_ecdsa Typ -1
debug1: Identitätsdatei /home/jacob/.ssh/id_ecdsa-cert Typ -1
ssh_exchange_identification: Verbindung vom Remote-Host geschlossen

Jacob Ewing
quelle
Eine ssh_exchange_identification: Connection closed by remote hostFehlerursache betrifft den Verbindungshost, der in der Liste aufgeführt ist /etc/hosts.deny.
Zoredache
Hm - wenn ich /ets/hosts.deny auf dieser Maschine habe, wird jede Zeile bemerkt.
Jacob Ewing
Darf ich vorschlagen -v, dem fehlgeschlagenen Befehl ssh etwas hinzuzufügen ? Gibt die folgende Ausgabe einen anderen Hinweis auf einen Fehler (dh channel 1: open failed: administratively prohibited: open failed)?
kbulgrien
2
Entschuldigung, mir ist gerade aufgefallen, dass es hilfreich ist, -vsowohl im Tunnel als auch bei fehlgeschlagenen ssh-Befehlen zu arbeiten (auf der Suche nach mehr als channel 3: open failed: connect failed: Connection timed out). Es könnte bemerkenswert sein zu erwähnen, dass man mehrere -v(bis zu drei) hinzufügen kann, um die Ausführlichkeit zu erhöhen. Ich würde nicht unbedingt den ganzen Spucke posten, aber es könnte sich lohnen, nach Wörtern zu suchen, die auf ein Problem hinweisen.
kbulgrien

Antworten:

1

Vielleicht, wenn Sie mehr als 10 SSH-Sitzungen haben, die auf das Einfügen des Passworts warten, haben Sie diese Art von Fehler. Ich erinnere mich, dass dies der jüngste SSH-Fehler war. Wenn Sie dies überprüfen würden, verwenden Sie den folgenden Befehl

for i in {1..15};do ssh -fNt [email protected] & >/dev/null ;done
c4f4t0r
quelle
0

So etwas ist bei einer kürzlich durchgeführten Installation passiert. In dieser Situation existierte /etc/hosts.deny und hatte keine Einstellungen, die explizit den Zugriff verweigerten, sodass die Umstände ähnlich zu sein scheinen. Es war notwendig, /etc/hosts.allow zu ändern, um etwas hinzuzufügen wie:

sshd: 192.168.127.0/255.255.255.128

Die IP-Details müssen an Ihre Bedürfnisse angepasst oder durch ersetzt werden, ALLwenn keine Bedenken bestehen, ssh von überall zuzulassen.

Nachdem Sie die Änderungen vorgenommen haben, stoppen Sie sshd und starten Sie es neu.

Upvoted Antworten auf folgende Frage bieten weitere Beispiele.

SSH hosts.deny und hosts.allow

Hier ist das Zeugnis eines anderen, das die Fehlermeldung mit der Lösung verknüpft.

So beheben Sie: ssh_exchange_identification: Die Verbindung wurde durch ein Remote-Host-Problem geschlossen, wenn Sie sich mit SSH anmelden

kbulgrien
quelle
Hmm - leider hat das nicht für mich behoben. Ich denke, meine Situation unterscheidet sich von der im Beispiel. Ich kann problemlos auf Port 22 zugreifen. Erst wenn ich versuche, durch einen anderen Port zu tunneln, werden die genannten Fehler angezeigt.
Jacob Ewing
Zugegeben, der Tunnel ist ein markanter Unterschied. Hilft dies vor diesem Hintergrund: diskussion.dreamhost.com/thread-97951.html ? Ich habe auch Verweise auf einen Hinweis gefunden, dass die Deinstallation und Neuinstallation des sshd-Pakets auf debianähnlichen Systemen ein Problem mit Schlüsseln behebt, das das von Ihnen beschriebene Verhalten verursacht ( Diskussion.dreamhost.com/thread-97951.html et al.) .
kbulgrien
Sie haben sshd (openssh-server) auf beiden Systemen installiert, oder?
kbulgrien
Yupyup. Ich mache das schon ziemlich lange und bin erst letzte Woche in Schwierigkeiten geraten, nachdem ich auf meinem Heimcomputer (dem Server) zu Debian gewechselt bin. Ich werde Ihren Vorschlag versuchen, sshd zu deinstallieren / neu zu installieren, wenn ich heute Abend nach Hause komme.
Jacob Ewing
0

Ich hatte das gleiche Problem und löste das Problem am Ende, indem ich Folgendes korrigierte /etc/network/interfaces:

auto eth0
iface eth0 inet static

oder

auto eth0
iface eth0 inet dhcp

Ohne diese Konfiguration bekomme ich nie eine umgekehrte Verbindung zu meinem SSH-Tunnel.

dr4ck0
quelle
0

In meinem Fall musste ich auf /etc/ssh/sshd_configdem Gateway-Rechner folgende Zeilen einfügen :

Match User <username>
   GatewayPorts yes

Weitere Details finden Sie hier

Hoffe das hilft!

schwimmendes Schnurren
quelle