web-dev-qa-db-fra.com

Transfert de port avec SSH avec différents utilisateurs: comment résoudre les problèmes de connexion?

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.

2
MrD

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.

1
Rmano