Table des matières

, , , , ,

Utiliser une session graphique distante avec VNC

Il arrive souvent qu'on lance une session graphique sur une machine, puis que l'on veuille suivre ensuite a distance l’évolution d'un programme, ou lancer de nouvelles applications graphiques depuis cette machine, un peu comme un screen/tmux mais pour une session graphique.

L’intérêt est donc de pouvoir lancer le serveur VNC après la dite session graphique.

Avec cette méthode on peut également lancer une nouvelle session graphique à distance
Il est également possible grâce aux tunnel SSH d'utiliser cette astuce pour vous connecter à une machine ayant une IP privée chez vous derrière votre routeur (ou tout autre réseau non accessible directement depuis votre machine locale)

Prérequis

Connexion SSH et création du tunnel

Sur votre machine locale :

localuser@machinelocale:~$ ssh -L 5555:localhost:5900 $MACHINE_DISTANTE

en remplaçant $MACHINE_DISTANTE par l'IP/nom de la machine souhaitée.

vous pouvez vous référer à cette page au besoin pour l'ajout de tunnels SSH a la volée

Lancement de VNC sur la machine cible

L'idée est de lancer x11vnc pour utiliser le display 0 deja utilisé par votre session graphique sur la machine distante :

distantuser@machinedistante:~$ x11vnc -display :0
Attention avec cette commande vous lancez un VNC sans aucune restriction de connexion, comme par exemple un mot de passe, vous pouvez et il est conseillé de mettre au moins un mot de passe bidon

Si toutefois vous n'étiez pas connecté graphiquement sur la machine cible, il suffit de lancer :

distantuser@machinedistante:~$ sudo x11vnc -display :0 -auth ~/.Xauthority

Récupération de la session

localuser@machinelocale:~$ vncviewer localhost:5555

Il faut bien sur adapter le port si vous n'aviez pas pris le port 5555 pour la création du tunnel