J'ai un serveur configuré avec Ubuntu 12.10. Tout fonctionne bien sauf une chose: la redirection de port SSH.
J'utilise la commande suivante pour transférer un serveur VNC sur mon PC:
ssh -L 5900:node:5900 adminuser@server
Ça marche très bien.
Cependant, ce n'est pas vrai pour les autres utilisateurs:
ssh -L 5900:node:5900 someotheruser@server
Cet utilisateur peut se connecter au serveur (peut se connecter et faire quelque chose), mais le port est pas transféré, c'est-à-dire que gvncviewer localhost
n'est pas terminé (dit Connecté au serveur mais ne demande jamais le mot de passe).
Que dois-je faire pour autoriser le transfert pour les autres (ou certains utilisateurs) également?
Édition: Utilisation de ssh -vv ...
J'ai reçu les messages suivants lors de l'appel de gvncviewer localhost
et de la connexion à l'aide de adminuser:
debug1: Connection to port 5900 forwarding to 10.100.0.8 port 5900 requested.
debug2: fd 9 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug1: channel 3: new [direct-tcpip]
debug2: channel 3: open confirm rwindow 2097152 rmax 32768
... -----> It works
Pour le someotheruser je reçois:
debug1: Connection to port 5900 forwarding to 10.100.0.8 port 5900 requested.
debug2: fd 9 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug1: channel 3: new [direct-tcpip]
-----> Here it hangs for a long time...
channel 3: open failed: connect failed: Connection timed out
debug2: channel 3: zombie
debug2: channel 3: garbage collecting
debug1: channel 3: free: direct-tcpip: listening port 5900 for 10.100.0.8 port 5900, connect from 127.0.0.1 port 39009, nchannels 4
Apparemment, le problème est causé par le serveur VNC et non par ssh.
J'essaie de composer une réponse afin que nous puissions marquer cette question comme résolue.
Pour vérifier la connexion, exécutez ssh en utilisant une ou plusieurs options -v
, comme dans:
ssh -v ...
ou
ssh -vvv ...
En consultant le journal, l’utilisateur ne peut pas se connecter (localement) au port 5900.
Essayez de voir si vous pouvez vous connecter localement:
ssh someotheruser@server
et quand vous avez le shell de l'utilisateur sur le serveur, essayez
telnet 10.100.0.8 5900
Préparez-vous à tuer telnet à partir d’une autre session ssh, elle peut se bloquer même si cela fonctionne (si cela fonctionne, cela devrait dire quelque chose comme:
Trying 10.100.0.8...
Connected to localhost.
Escape character is '^]'.
RFB 003.007
S'il ne se connecte pas, le problème ne vient pas du transfert de port ssh, c'est que le serveur VNC n'accepte pas les connexions de l'utilisateur.