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 😉
Laisser un commentaire