«Canal 3: échec d'ouverture: administrativement interdit: échec d'ouverture» lors de la création d'une session VNC sur un tunnel SSH

10

Lors de la création d'une connexion VNC via une connexion SSH tunnelée, j'obtiens une erreur:

channel 3: open failed: administratively prohibited: open failed

J'ai constaté que cela ne se produit que lorsque je ne suis pas connecté à l'hôte localement en tant que usernamesur l'hôte auquel j'essaie de me connecter en utilisant une connexion VNC tunnelée. Tunnel SSH:

ssh -p 6000 -L 5901:127.0.0.1:5901 [email protected]

Connexion VNC:

vncviewer localhost:1

J'ai essayé d'ajuster les paramètres en /etc/ssh/sshd_configutilisant AllowTunnel yeset sans le paramètre. (J'ai redémarré ssh après chaque modification:) service ssh restartCependant, l'erreur disparaît si j'ai une session locale en cours d'exécution sur l'hôte distant (c'est-à-dire que je suis connecté usernamelocalement.) Quelqu'un d'autre voit-il ce comportement? Il semble que je devrais pouvoir démarrer un VNC à distance et y accéder sans avoir à me connecter localement également.

Mike Swartz
la source
1
Mike, veuillez vérifier la visite pour voir comment fonctionne ce site et si ma réponse a résolu votre problème, veuillez l'accepter.
Jakuje

Réponses:

14

L'option que vous recherchez ne l'est pas AllowTunnel(c'est pour le VPN et le transfert de niveau 3 à l'aide d' tunappareils). Vous recherchez AllowTcpForwarding, qui gère la redirection de port local et distant du trafic TCP dans ssh.

Jetez un œil aux valeurs de votre serveur et changez-les en yes:

AllowTcpForwarding yes
Jakuje
la source
Merci pour votre réponse rapide. Cela semble avoir résolu mon problème. Je l' avais vu d' autres avec la même question et il a été suggéré AllowTunnel yesdans sshd_config, mais cela ne fonctionne pas pour moi.
Mike Swartz
1
C'est probablement une légende urbaine, car l'autre réponse est également venue ici. Aucune idée d'où cela vient et il est si facile d'ouvrir la page de manuel et d'en vérifier la signification. Si cela fonctionne pour vous, ayez une seconde pour vérifier la réponse comme solution pour aider les autres.
Jakuje
1
Pourquoi le vote négatif?
Jakuje
AllowTcpForwarding Spécifie si le transfert TCP est autorisé. Les options disponibles sont "oui" ou "tous" pour autoriser le transfert TCP, "non" pour empêcher tout transfert TCP, "local" pour autoriser le transfert local (du point de vue de ssh (1)) uniquement ou "distant" pour autoriser le transfert à distance transfert uniquement. La valeur par défaut est «oui».
Bart Polot
0

J'ai eu une cause de résolution de nom pour cette erreur. Mes / etc / hosts avaient une adresse IP erronée pour le nom du serveur (pas pour localhost), comme ceci:

127.0.0.1     localhost
192.168.2.45  server.domain.com server

Mais l'IP du serveur configuré (et le nom DNS résolu avec les commandes host / dig) était 192.168.2.47. Une faute de frappe simple provoquée par une reconfiguration IP précédente. Après avoir corrigé / etc / hosts, la connexion au tunnel a fonctionné sans problème:

ssh [email protected] -L 3456:127.0.0.1:5901

Il est étrange que la véritable IP ait provoqué l'échec lorsque j'utilisais l'IP littérale localhost pour le tunnel. Distro: Ubuntu 16.04 LTS.

Fjor
la source