110 votes

le tunnel ssh refuse les connexions avec "channel 2 : open failed" (canal 2 : ouverture échouée)

Tout à coup (sans changer aucun paramètre), ma machine virtuelle netbsd a commencé à se comporter bizarrement. Les symptômes concernent le tunnelage ssh.

Depuis mon ordinateur portable, je lance :

$ ssh -L 7000:localhost:7000 user@host -N -v

Ensuite, dans un autre Shell :

$ irssi -c localhost -p 7000

Le débogage de ssh dit :

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

J'ai également essayé de me connecter au serveur web (distant) avec localhost:80, avec des résultats identiques.

L'hôte distant exécute NetBSD :

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

Je suis un peu perdu. J'ai essayé de courir tcpdump sur l'hôte distant, et j'ai repéré ces 'bad chksum' :

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>

J'ai essayé de redémarrer le démon ssh, sans succès. Je n'ai pas encore redémarré - peut-être que quelqu'un ici peut suggérer d'autres diagnostics. Je pense que cela pourrait être soit le pilote de la carte réseau virtuelle, soit quelqu'un qui a rooté notre ssh.

Des idées ?

4voto

valentt Points 295

Pour moi, l'ajout d'un " :" en tête fonctionne donc la commande dans votre cas ressemblerait à ceci :

ssh -L :7000:localhost:7000 user@host -N -v

3voto

cengique Points 131

J'ai rencontré cette erreur lorsque j'ai transféré des ports avec un fichier nom de domaine complet au lieu de localhost :

ssh -L 5900:host.name.com:5900 x11vnc

Le port n'était ouvert que pour localhost, donc pour accepter les connexions avec un nom pleinement qualifié, j'ai dû ajouter une balise port de liaison description :

ssh -L *:5900:host.name.com:5900 x11vnc

qui permet de se connecter de n'importe où (ce n'est donc pas très sûr, utilisez-le avec parcimonie).

3voto

Hincor Points 21

L'interprétation alternative est, dans mon cas, que vous l'avez mal tapé.

user@host ~ $ ssh -vvvNL 4444:127.0.0.0.1:4444
...
channel 2: open failed: connect failed: Name or service not known

Ce qui se passe ici est que l'adresse IP a un zéro de trop, ce qui n'est pas une adresse valide. Donc ssh la traite comme un nom de domaine qu'il ne peut pas résoudre. Oups !

PS : Je complète ceci pour que nous ayons une liste complète des problèmes possibles lors du dépannage des mêmes symptômes.

2voto

cyphun Points 53

? ??

canal 2 : échec de l'ouverture : échec de la connexion : Connexion refusée

Sur user@host il n'y a rien qui écoute le port 7000, c'est simple et c'est tout.

2voto

ryanwc Points 11

Pour moi, j'essayais ssh -L <port>:<remote server IP>:<port> <login>@<remote server IP> alors que j'aurais dû faire ssh -L <port>:127.0.0.1:<port> <login>@<remote server IP> .

J'espère que cela aidera quelqu'un !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X