Plötzlich (lesen: ohne Parameter zu ändern) reagierte meine netbsd virtualmachine merkwürdig. Die Symptome betreffen das SSH-Tunneln.
Von meinem Laptop starte ich:
$ ssh -L 7000:localhost:7000 user@host -N -v
Dann in einer anderen Schale:
$ irssi -c localhost -p 7000
Das SSH-Debug lautet:
debug1: Connection to port 7000 forwarding to localhost port 7000 requested.
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip: listening port 7000 for localhost port 7000, connect from 127.0.0.1 port 53954, nchannels 3
Ich habe auch mit localhost: 80 versucht, eine Verbindung zum (entfernten) Webserver herzustellen, mit identischen Ergebnissen.
Auf dem Remote-Host wird NetBSD ausgeführt:
bash-4.2# uname -a
NetBSD host 5.1_STABLE NetBSD 5.1_STABLE (XEN3PAE_DOMU) #6: Fri Nov 4 16:56:31 MET 2011 root@youll-thank-me-later:/m/obj/m/src/sys/arch/i386/compile/XEN3PAE_DOMU i386
Ich bin ein bisschen verloren. Ich habe versucht, tcpdump
auf dem Remote-Host zu laufen , und habe diese "schlechten Chksum" entdeckt:
09:25:55.823849 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 67, bad cksum 0 (->3cb3)!) 127.0.0.1.54381 > 127.0.0.1.7000: P, cksum 0xfe37 (incorrect (-> 0xa801), 1622402406:1622402421(15) ack 1635127887 win 4096 <nop,nop,timestamp 5002727 5002603>
Ich habe versucht, den ssh-Daemon ohne Erfolg neu zu starten. Ich habe noch keinen Neustart durchgeführt. Vielleicht kann hier jemand eine andere Diagnose vorschlagen. Ich denke, es könnte entweder der virtuelle Netzwerkkartentreiber sein, oder jemand hat unser SSH verwurzelt.
Ideen ..?
quelle
$ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v
. (Sie können "-v" bis zu dreimal verwenden, um die Ausführlichkeit zu erhöhen.) Ist es auch möglich, dass ssh kürzlich aktualisiert wurde?ssh -L 7000... -N -v -v
(zwei vs) oder (zwei vs) ansehenssh -L 7000... -N -v -v -v
.Antworten:
Problem gelöst:
... anscheinend wurde ' localhost ' vom Remote-Host nicht gemocht. Remote
/etc/hosts
enthält jedoch:während die lokale Netzwerkschnittstelle ist
Seufzer. Soviel zum Kopfgeld von 100 RP, das ich angelegt habe :)
quelle
Obwohl das Problem von OP bereits gelöst wurde, habe ich beschlossen, die Lösung für mein Problem mit anderen zu teilen, da ich von ssh dieselbe Fehlermeldung erhalten habe und auf anderen Sites keine Lösung gefunden habe.
In meinem Fall musste ich mich mit dem Dienst verbinden, der nur auf IPv6 lauscht. Ich habe es versucht:
und ein paar andere Möglichkeiten, aber es hat nicht funktioniert. Jeder Verbindungsversuch
http://localhost:51005
verursacht folgende Fehler:channel 2: open failed: connect failed: Connection refused
Die Lösung ist:
Die IPv6-Adresse muss in eckigen Klammern stehen.
quelle
Ich würde das zuerst versuchen.
Sie können "-v" bis zu dreimal verwenden, um die Ausführlichkeit zu erhöhen.
Ich denke, diese Fehlermeldung kann auftreten, wenn eine Firewall Port 7000 blockiert, aber Sie hatten dies bereits ausgeschlossen. (Wenn spätere Leser dies nicht ausgeschlossen haben, sehen Sie sich die Ausgabe von an
netstat --numeric-ports
.)Ich glaube, ich habe diese Fehlermeldung schon vor langer Zeit gesehen, als ssh nach einem Update zum ersten Mal auf IPV6-Adressen aufmerksam wurde. Darin könnte ich mich irren. Wenn Sie experimentieren möchten, können Sie die IPV6-Loopback-Adresse "0: 0: 0: 0: 0: 0: 0: 0: 1" (oder ":: 1") verwenden.
quelle
"... anscheinend wurde 'localhost' vom entfernten Host nicht gemocht. Dennoch enthält remote / etc / hosts:"
Es sei denn, Sie haben ssh auf dem Client ausgeführt, sodass 'localhost' von Ihrem Client nicht gemocht wurde. Die Remote-Datei / etc / hosts ist für die Remote-Verbindung von nicht eingehenden Verbindungen gedacht .
quelle
Ich bin auf den gleichen Fehler gestoßen, als ich versucht habe, über einen SSH-Tunnel eine Verbindung zu MySQL auf einem anderen Server herzustellen. Ich stellte fest, dass der Parameter bind-address in /etc/my.cnf auf dem Zielserver an meine externe IP-Adresse (dualer NIC-Server) gebunden war und nicht an die interne, für die ich keine Verwendung hatte.
Wenn ich bind-address = 127.0.0.1 setze, kann ich meinen ssh-Tunnel wie folgt erfolgreich verwenden:
quelle
Ich bin auf diesen Fehler gestoßen, als ich Ports mit einem vollständigen Domainnamen anstelle von localhost weitergeleitet habe:
Der Port wurde nur für localhost geöffnet. Um also Verbindungen mit einem vollständig qualifizierten Namen zu akzeptieren, musste ich eine verbindliche Portbeschreibung hinzufügen :
Dies würde Verbindungen von überall zulassen (so ist es nicht so sicher, verwenden Sie es sparsam).
quelle
Für mich funktioniert das Hinzufügen von ":" so, dass der Befehl in Ihrem Fall so aussehen würde:
quelle
???
Bei
user@host
Port 7000 gibt es nichts zu hören, das ist einfach und das ist alles.quelle
Ich habe die gleiche Fehlermeldung erhalten:
Und die Ursache war menschliches Versagen - ich habe versucht, auf einen anderen als den angegebenen Port auf dem Remote-Host zuzugreifen.
Ich dachte nur, ich teile das, obwohl dies wahrscheinlich nicht der Grund ist, warum die meisten von Ihnen diesen Fehler haben.
quelle
Für mich habe ich versucht,
ssh -L <port>:<remote server IP>:<port> <login>@<remote server IP>
wann ich es hätte tun sollenssh -L <port>:127.0.0.1:<port> <login>@<remote server IP>
.Ich hoffe das hilft jemandem!
quelle
Eine alternative Interpretation ist in meinem Fall Ihre falsche Eingabe.
Was hier passiert, ist, dass die IP-Adresse eine zu viele Nullen hat und somit keine gültige Adresse ist. Ssh behandelt es stattdessen als einen Domainnamen, den es nicht auflösen kann. Hoppla!
PS: Ich ergänze dies, damit wir eine umfassende Liste möglicher Probleme bei der Behandlung der gleichen Symptome haben.
quelle