Le contrôle à distance est toujours quelque chose d’utile, surtout couplé à une connexion VPN pour se connecter depuis presque n’importe où comme si on était chez soi.
Il existe déjà quantité de tutos sur l’utilisation de VNC, mais ils ne sont pas toujours de qualité et dépendent aussi de la distribution utilisée…

 

Il existe 2 manières d’accès à distance à une machine à ma connaissance (n’hésitez pas à réagir si vous en connaissez d’autres 😉 ) :

  • Vino : très simple d’utilisation, il permet de partager l’écran actuellement affiché sur la machine distante. Il suffit d’aller dans l’onglet « système » du menu > « Préférences > « Bureau à distance »
  • VNCserver : il permet d’ouvrir un nouveau shell (X ou non) pour une nouvelle session, il ne partage donc pas l’écran actuel de la machine distante.

 

C’est VNCserver que j’expliquerai ici pour une distribution Debian ou Ubuntu équipée de Gnome.

 Installation

Seul le paquet vncserver est nécessaire :

#apt-get install vncserver

Configuration

Paramètres de base

Lorsque vous ne changez pas le fichier de configuration, c’est un écran de shell dans une fenêtre graphique qui apparaît lors de la connexion VNC, mais sans notre environnement. On peut lancer des programmes graphiques, mais ce n’est pas du tout ce que l’on veut et je me demande encore pourquoi cela a été configuré comme cela par défaut. Autant utiliser SSH… Qui lui est crypté de plus…

Vous pouvez faire un essai en lançant cette commande sur le serveur distant :

$vncserver :1

Connectez vous avec votre client VNC (vncviewer ou realvnc) sur l’adresse de la machine distante sur le port 5901 pour le voir de vous même (peut-être que pour d’autres distributions vous avez directement une session X et ne devez rien configurer).

Vous fermerez le demon vncserver avec la commande suivante :

$vncserver -kill :1

Modification du fichier de configuration

Il faut éditer le fichier de configuration xstartup qui se trouve dans le répertoire home de l’utilisateur ($HOME/.vnc/xtartup) :

#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

Utilisation

Ouvrir une session VNC

Pour démarrer un demon pour une session graphique, entrer la commande suivante :

$vncserver :1 -name "nom" -geometry 800x480 -depth 16
  • :1 : correspond à l’écran numéro 1 pour le port 5901 (:2 -> 5902, etc)
  • name : mettre un nom de référence
  • geometry : spécifie les dimensions de l’écran (ici 800×480 pour visualiser sur un smartphone par exemple)
  • depth : profondeur de couleur

Note : la première fois, vous serez invité à rentrer un mot de passe pour cette écran, qui sera enregistré dans un fichier dans le répertoire home : $HOME/.vnc/passwd

Note : il arrive qu’il faut redémarrer gdm après avoir démarré une session via

#/etc/init.d/gdm restart

Utilisez votre logiciel VNC favori (comme vncViewer) en vous connectant à 129.168.1.10:5901 par exemple.

$vncviewer 129.168.1.10:5901

Fermer une session VNC

Pour fermer une session VNC, il suffit de tuer le demon avec la commande suivante comme dit plus haut :

$vncserver -kill :1
  • kill : option pour tuer l’écran 1

Conclusion

VNC est très simple à utiliser, très fluide et on peut créer un script pour ouvrir un écran au démarrage de la machine pour automatiser le démarrage d’un écran de connexion.

Le hic avec cette solution est qu’elle n’est pas sécurisée, car le mot de passe passe en clair sur le réseau. Pour se connecter en local chez soi ou via un VPN cela ne pose pas de problème, mais il faut être vigilant.

J’expliquerai dans un prochain article comment sécuriser une session vnc dans un tunnel SSH.

N’hésitez pas à communiquer vos impressions 😉