J'ai un serveur fonctionnant sous Ubuntu 12.10 et j'ai besoin de pouvoir me connecter à distance à ce serveur sans être connecté.
J'ai trouvé de nombreuses solutions, mais aucune ne semble fonctionner avec la version 12.10.
Quelqu'un peut-il me donner des instructions étape par étape sur la façon de configurer x11vnc
pour qu'il démarre en tant que service (avant la connexion de l'utilisateur) de sorte que lors de la connexion avec VNC, je serai présenté avec un écran de connexion graphique ?
Je suis novice en matière de Linux et je vous prie donc de donner le plus de détails possible dans vos réponses/commentaires.
Merci
Installez x11vnc :
sudo apt-get install x11vnc
Créez un mot de passe pour votre utilisateur :
x11vnc -storepasswd
Si vous avez configuré ssh, vous pouvez l'utiliser pour démarrer x11vnc en supposant que vous êtes déjà connecté, mais n'oubliez pas de lui dire d'utiliser votre fichier de mots de passe :
x11vnc -usepw
Si vous n'êtes pas connecté, vous obtiendrez une erreur avec l'explication suivante :
If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:
gdm: -auth /var/gdm/:0.Xauth
-auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
-auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa
En supposant que vous utilisez lightdm pour la connexion, vous pouvez résoudre ce problème en démarrant x11vnc avec la commande :
sudo x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
Je ne suis pas sûr que ce soit la meilleure idée de lancer x11vnc en tant que root. Peut-être que quelqu'un pourrait éditer avec un moyen d'accéder au login sans utiliser sudo.
Une fois que cela fonctionne, vous devriez être en mesure de vous connecter en utilisant un client vnc tel que krdc (pour KDE). Vous pouvez utiliser [GNU Screen][1] pour que x11vnc continue à fonctionner sans avoir besoin de la session ssh ouverte.
J'ai pu résoudre ce problème en utilisant http://ubuntuforums.org/showthread.php?t=2039022.
[1] : http://en.wikipedia.org/wiki/GNU_Screen
Voici un exemple de job upstart que vous pouvez utiliser pour le faire fonctionner au démarrage. Il doit être placé dans /etc/init/x11vnc.conf. (Notez que les versions plus récentes d'Ubuntu utilisent systemd, donc voyez l'autre réponse qui a un exemple de configuration systemd) :
# description "start and stop x11vnc"
description "x11vnc"
start on runlevel [2345]
stop on runlevel [^2345]
console log
#chdir /home/
#setuid 1000
#setgid 1000
respawn
respawn limit 20 5
exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
Une fois que vous avez créé ce fichier, vous pouvez le démarrer en exécutant : sudo start x11vnc Vous pouvez vérifier le journal à l'adresse /var/log/upstart/x11vnc.log
Les réponses ci-dessus résolvent le problème, avec toutefois quelques modifications pour les versions d'Ubuntu avec systemd (15.04+), comme suit :
-auth guess
de x11vnc - qui aide !Exécutez ce qui suit pour installer :
sudo apt-get install x11vnc
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
# for Ubuntu 15.04+
sudo nano /lib/systemd/system/x11vnc.service
# for Ubuntu 16.10+
sudo nano /etc/systemd/system/x11vnc.service
Insérez ceci dans le fichier :
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2
[Install]
WantedBy=multi-user.target
Ensuite, commencez par :
sudo systemctl daemon-reload
sudo systemctl start x11vnc
Et assurez-vous que le service démarre au démarrage :
sudo systemctl enable x11vnc
Voici comment :
Installez le serveur X11VNC (ou via Ubuntu Centre de logiciels -> Serveur X11VNC)
sudo apt-get install x11vnc
Créez un fichier de mots de passe VNC.
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
Créez un fichier de travail dans l'éditeur nano (ou gedit, leafpad etc.).
sudo nano /etc/init/x11vnc.conf
Collez ceci dans le fichier :
start on login-session-start
script
/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
terminer le script
Enregistrez le fichier. Vous avez créé un job pour l'événement Upstart login-session-start.
Redémarrez Ubuntu.
Et voilà ! Vous devriez maintenant être capable de vous connecter avec n'importe quel client VNC avant même de vous connecter.