{{tag>session graphique distante vnc SSH tunnel}} ====== 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 ===== * disposer d'une connexion SSH supportant les tunnels avec la machine en question * coté client : le client SSH : au besoin même s'il devrait déjà être installé : # apt-get install openssh-client * sur la machine cible, installable via SSH : # apt-get install x11vnc ===== 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 à [[sysadmin:tips:ssh|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