tunnel ssh - liaison: impossible d'attribuer l'adresse demandée

26

Essayer de créer un tunnel ssh socks (-D) - Box Linux vers Linux (les deux centos):

sshd fonctionne sur le côté distant ok.

De la machine locale, nous faisons / voyons ceci:

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

(où 8.8.8.8 est vraiment l'IP de mon serveur et 'utilisateur' est mon vrai nom d'utilisateur)

Je suis connecté du côté distant dans cette fenêtre de terminal. Je peux vérifier que le port local n'était pas utilisé avant cette commande, puis utilisé par un processus ssh, après la commande, via:

netstat -lnp | grep 1080

Ainsi, contrairement à la plupart des réponses googlées avec cette erreur, le problème ne semble pas être l'affectation de l'interface de bouclage. Si j'essaie d'utiliser ce tunnel avec un client de messagerie, le côté local autorise la tentative (pas d'erreur «échec du proxy»), mais aucune donnée / réponse n'est renvoyée.

Du côté distant, j'ai "PermitTunnel yes" dans mon sshd_config (bien que 'yes' devrait être la valeur par défaut, de toute façon).

Des idées ou des indices?

Voici la sortie de débogage appropriée

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

Autre indice: si j'exécute une boîte virtuelle sur le client exécutant Windows, ouvrir un tunnel avec du mastic dans cette boîte, ce tunnel, vers le même serveur distant, fonctionne.

Encore plus étrange "Si j'utilise Putty (pour linux) fonctionnant directement sur le client Linux, cela ne fonctionne PAS, même si les paramètres sont un double exact des paramètres de putty qui FONCTIONNENT dans Putty fonctionnant sur Windows dans une boîte virtuelle sur le même Machine cliente Il y a quelque chose de louche ... essayant toujours des expériences pour comprendre ce que c'est

JosephK
la source
Et si vous essayez de le forcer à utiliser ipv4? (tout comme un test de dépannage initial). Par exemple ssh -4 -D 1080 [email protected]
Fred Clausen
Pouvez-vous essayer un numéro de port supérieur, 4000?
jwbensley
Merci pour les contributions. Je l'ai fait fonctionner avec: ssh -4 -D 8081 [email protected]
JosephK

Réponses:

41

La boucle ici. La réponse, dans ce cas, était de forcer le client ssh à utiliser ipv4. Par exemple

ssh -4 -D 8081 [email protected]
Fred Clausen
la source
Je pense donc, sauf que je peux sélectionner 'force ip4' dans du mastic (fonctionnant sous Linux) sans succès. IPV6 est également désactivé sur cette machine, donc théoriquement ne devrait pas avoir été en jeu. Les résultats complètement incohérents que j'obtiens toujours en essayant différentes permutations de cette chose me laissent me gratter la tête. En tout cas, votre réponse m'a aidé à le faire fonctionner, et a peut-être découvert quelque chose d'étrange sur le fonctionnement de cette version de CentOS ou Linux Kernel ou quelque chose comme ça - Merci.
JosephK
Un long coup mais peut-être en désactivant la résolution DNS SSH sur le serveur, "UseDNS no" dans sshd_config, pourrait le résoudre. Peut-être qu'une résolution DNS étrange se produit sur le serveur, ce qui provoque des problèmes de liaison.
Fred Clausen
1
Merci beaucoup, le -4 était également la solution pour Ubuntu 11.04.
Sander
J'ai commencé à avoir ce problème après la mise à niveau vers Ubuntu 13.04, et c'était le correctif.
Nick
1
Au lieu d'avoir à spécifier -4 à chaque fois, en supposant que toutes les connexions ssh doivent être établies uniquement avec IPv4, ajoutez "AddressFamily inet" à votre fichier ssh_config - par utilisateur dans $ {HOME} /. Ssh / ssh_config, ou à l'échelle du système pour tous les utilisateurs dans / etc / ssh / ssh_config
JG Miller