ssh tunnel - bind: Die angeforderte Adresse kann nicht zugewiesen werden

26

Versuch, einen socks (-D) ssh-Tunnel zu erstellen - Linux-Box zu Linux-Box (beide Centos):

SSHD läuft auf der Remote-Seite ok.

Von der lokalen Maschine aus sehen wir folgendes:

ssh -D 1080 [email protected].
[email protected]'s password: 
bind: Cannot assign requested address

(wobei 8.8.8.8 wirklich die IP meines Servers ist und 'user' mein realer Benutzername ist)

In diesem Terminalfenster bin ich auf der Gegenseite eingeloggt. Ich kann überprüfen, ob der lokale Port vor diesem Befehl nicht verwendet und nach dem Befehl von einem ssh-Prozess verwendet wurde.

netstat -lnp | grep 1080

Im Gegensatz zu den meisten gegoogelten Antworten mit diesem Fehler scheint das Problem also nicht die Zuweisung der Loopback-Schnittstelle zu sein. Wenn ich versuche, diesen Tunnel mit einem Mail-Client zu verwenden, lässt die lokale Seite den Versuch zu (kein "Proxy-Fehler"), aber es werden keine Daten / Antworten zurückgegeben.

Auf der Remote-Seite habe ich "PermitTunnel yes" in meiner sshd_config (obwohl "yes" sowieso die Standardeinstellung sein sollte).

Ideen oder Hinweise?

Hier ist die relevante Debug-Ausgabe

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *

....

debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:1080 forwarded to remote address socks:0
debug1: Local forwarding listening on 127.0.0.1 port 1080.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on ::1 port 1080.
bind: Cannot assign requested address
debug1: channel 1: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8

Anderer Hinweis: Wenn ich auf dem Client unter Windows eine virtuelle Box ausführe, öffne ich einen Tunnel mit Kitt in dieser Box. Dieser Tunnel funktioniert auf demselben Remote-Server.

Noch fremder "Wenn ich Putty (für Linux) verwende, das direkt auf dem Linux-Client ausgeführt wird, funktioniert es NICHT, auch wenn die Einstellungen ein genaues Duplikat der Putty-Einstellungen sind, die in Putty unter Windows in einer virtuellen Box auf derselben ausgeführt werden Client-Maschine? Es ist etwas faul. Versuche immer noch, herauszufinden, was es ist.

JosephK
quelle
Was ist, wenn Sie versuchen, die Verwendung von ipv4 zu erzwingen? (Nur als erster Test zur Fehlerbehebung). ZB ssh -4 -D 1080 [email protected]
Fred Clausen
Können Sie eine höhere Portnummer versuchen, 4000?
Jwbensley
Danke für die Eingaben. Ich habe es zum Arbeiten mit: ssh -4 -D 8081 [email protected]
JosephK

Antworten:

41

Das schließt die Schleife hier. In diesem Fall bestand die Antwort darin, den ssh-Client zur Verwendung von ipv4 zu zwingen. Z.B

ssh -4 -D 8081 [email protected]
Fred Clausen
quelle
Also würde ich denken, außer dass ich "IP4 erzwingen" in Putty (läuft unter Linux) ohne Erfolg auswählen kann. Auch IPV6 ist auf diesem Rechner deaktiviert, sollte also theoretisch nicht im Spiel gewesen sein. Die völlig inkonsistenten Ergebnisse, mit denen ich immer noch verschiedene Permutationen dieser Sache probiere, lassen mich am Kopf kratzen. Auf jeden Fall hat Ihre Antwort mir geholfen, es zum Laufen zu bringen, und vielleicht hat sich herausgestellt, wie diese Version des CentOS- oder Linux-Kernels oder dergleichen funktioniert - Danke.
JosephK
Ein langer Versuch, aber möglicherweise das Deaktivieren der SSH-DNS-Auflösung auf dem Server, "UseDNS no" in sshd_config, könnte dies beheben. Möglicherweise führt eine seltsame DNS-Auflösung auf dem Server zu Bindungsproblemen.
Fred Clausen
1
Vielen Dank, das -4 war auch die Lösung für Ubuntu 11.04.
Sander
Ich hatte dieses Problem nach dem Upgrade auf Ubuntu 13.04 und dies war die Lösung.
Nick
1
Anstatt jedes Mal -4 anzugeben, sofern alle ssh-Verbindungen nur mit IPv4 hergestellt werden sollen, fügen Sie Ihrer ssh_config-Datei "AddressFamily inet" hinzu - pro Benutzer in $ {HOME} /. Ssh / ssh_config oder systemweit für Alle Benutzer in / etc / ssh / ssh_config
JG Miller