VNC : x11vnc pour prendre le contrôle du bureau à distance
Table des matières
Il peut être utile de prendre la main à distance sur un PC équipé de GNU/Linux pour aider un de nos amis dans la détresse, ou pour accéder à un ordinateur de la maison constamment allumé, sans écran.
On va installer donc le paquet x11vnc qui permet à un utilisateur de se connecter sur sa machine à distance à la manière de RDP sur Windows (Connexion Bureau à distance).
Sous Fedora/CentOS :
Sous Gentoo/Calculate Linux :
Sous Mageia :
Sous Ubuntu et dérivés :
Et voila, c'est installé !
Pour protéger la prise de main à distance, il est recommandé de créer un mot de passe pour permettre la prise de main (où ******** est le mot de passe) :
Pour lancer le serveur VNC, c'est en console, en session utilisateur :
Il est possible de placer dans son .bashrc un alias de manière à ne taper qu'un mot mnémotechnique :
Faire Ctrl+C pour arrêter.
Il est possible aussi de de faire démarrer x11vnc avec la session.
Pour cela, créer un raccourci vers la commande ci-dessus dans le gestionnaire de bureau utilisé.
Si le bureau ne possède pas l'option pour lancer le programme automatiquement dès l'ouverture de session, il est possible de créer un fichier .desktop dans ~/.config/autostart/ dont voici le contenu :
Il est possible aussi de de faire démarrer x11vnc avec le système.
Pour cela, créer le fichier de mot de passe comme vu précédemment pour l'utilisateur root.
Ensuite créer le service qui va bien :
Avec OpenRC :
Placer le code :
Et rendre le fichier exécutable :
Et s'assurer que le service local soit démarré :
Pour systemd :
Voir l'article https://www.linuxtricks.fr/wiki/systemd-creer-des-services-timers-unites
Et modifier la ligne
et
Si le curseur est mal affiché, c'est possible de mettre l'option -cursor à la ligne de commande x11vnc :
Introduction
Il peut être utile de prendre la main à distance sur un PC équipé de GNU/Linux pour aider un de nos amis dans la détresse, ou pour accéder à un ordinateur de la maison constamment allumé, sans écran.
Installation
On va installer donc le paquet x11vnc qui permet à un utilisateur de se connecter sur sa machine à distance à la manière de RDP sur Windows (Connexion Bureau à distance).
Sous Fedora/CentOS :
Code BASH :
yum install x11vnc
Sous Gentoo/Calculate Linux :
Code BASH :
emerge -qv x11vnc
Sous Mageia :
Code BASH :
urpmi x11vnc
Sous Ubuntu et dérivés :
Code BASH :
apt-get install x11vnc
Et voila, c'est installé !
Utiliser x11vnc
Générer un mot de passe
Pour protéger la prise de main à distance, il est recommandé de créer un mot de passe pour permettre la prise de main (où ******** est le mot de passe) :
Code BASH :
x11vnc -storepasswd "*******" ~/.vnc_passwd
Lancer le programme
En mode manuel
Pour lancer le serveur VNC, c'est en console, en session utilisateur :
Code BASH :
x11vnc -many -rfbauth ~/.vnc_passwd -xkb
Il est possible de placer dans son .bashrc un alias de manière à ne taper qu'un mot mnémotechnique :
Code BASH :
alias assistance='x11vnc -many -rfbauth ~/.vnc_passwd -xkb'
Faire Ctrl+C pour arrêter.
En mode automatique avec la session
Il est possible aussi de de faire démarrer x11vnc avec la session.
Pour cela, créer un raccourci vers la commande ci-dessus dans le gestionnaire de bureau utilisé.
Si le bureau ne possède pas l'option pour lancer le programme automatiquement dès l'ouverture de session, il est possible de créer un fichier .desktop dans ~/.config/autostart/ dont voici le contenu :
Code BASH :
[Desktop Entry] Type=Application Exec=x11vnc -many -rfbauth ~/.vnc_passwd -xkb -shared -bg Hidden=false NoDisplay=false Name=x11vnc Comment=Bureau à distance VNC
En mode automatique avec le système
Il est possible aussi de de faire démarrer x11vnc avec le système.
Pour cela, créer le fichier de mot de passe comme vu précédemment pour l'utilisateur root.
Ensuite créer le service qui va bien :
Avec OpenRC :
Code BASH :
nano /etc/local.d/01-vnc.start
Placer le code :
Code BASH :
#! /bin/bash #Pause car parfois X pas encore lancé quand le service se lance sleep 10 # Lancement du x11vnc x11vnc -many -rfbauth /root/.vnc_passwd -xkb -shared -bg &
Et rendre le fichier exécutable :
Code BASH :
chmod +x /etc/local.d/01-vnc.start
Et s'assurer que le service local soit démarré :
Code BASH :
rc-update add local
Pour systemd :
Voir l'article https://www.linuxtricks.fr/wiki/systemd-creer-des-services-timers-unites
Et modifier la ligne
Code BASH :
ConditionPathExists=/usr/bin/x11vnc
et
Code BASH :
ExecStart=/bin/sh -c 'sleep 10 ; x11vnc -many -rfbauth /root/.vnc_passwd -xkb -shared -bg &'
À noter
Problèmes
Curseur mal affiché
Si le curseur est mal affiché, c'est possible de mettre l'option -cursor à la ligne de commande x11vnc :
Code BASH :
-cursor arrow