Comment configurer x11vnc pour accéder à l'écran de connexion graphique?

43

J'ai un serveur exécutant Ubuntu 12.10 et je dois pouvoir me connecter à ce serveur sans être connecté.

J'ai trouvé beaucoup de solutions, mais aucune ne semble fonctionner avec 12.10.

Quelqu'un peut-il me donner des instructions pas à pas sur la façon de configurer x11vnc pour démarrer en tant que service (avant la connexion de l'utilisateur) de sorte que lors de la connexion à VNC, un écran de connexion graphique s'affiche?

Je suis nouveau sur Linux, alors donnez autant de détails que possible dans vos réponses / commentaires.

Merci

    
posée user115250 17.12.2012 - 19:27
la source

7 réponses

36

Installez x11vnc:

sudo apt-get install x11vnc

Créez un mot de passe pour votre utilisateur:

x11vnc -storepasswd

Si vous avez la configuration de ssh, vous pouvez l'utiliser pour démarrer x11vnc en supposant que vous êtes déjà connecté, mais n'oubliez pas de lui indiquer d'utiliser votre fichier de mots de passe:

x11vnc -usepw

Si vous n'êtes pas connecté, vous obtiendrez une erreur avec l'explication:

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, vous pouvez démarrer 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 d’exécuter x11vnc en tant que root. Peut-être que quelqu'un pourrait modifier avec un moyen d'accéder à la connexion sans utiliser sudo.

Une fois que cela fonctionne, vous devriez pouvoir vous connecter en utilisant un client vnc tel que krdc (pour KDE). Vous pouvez utiliser Écran GNU pour maintenir x11vnc en cours d'exécution sans avoir besoin d'ouvrir la session ssh

J'ai été capable de le découvrir en utilisant lien .

Voici un exemple de travail de démarrage que vous pouvez utiliser pour le lancer au démarrage. Il doit être placé dans /etc/init/x11vnc.conf. (Notez que les nouvelles versions d'Ubuntu utilisent systemd, voyez donc l'autre réponse qui contient 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 ce fichier créé, vous pouvez le lancer en exécutant:     sudo démarrer x11vnc Vous pouvez consulter le journal à l’adresse: /var/log/upstart/x11vnc.log

    
réponse donnée Allen 28.03.2013 - 16:42
la source
28

Les réponses ci-dessus résolvent le problème, mais quelques modifications pour les versions d'Ubuntu avec systemd (15.04+), comme suit:

  • Profitez des nouvelles fonctionnalités de -auth guess dans x11vnc - ce qui aide!
  • Mise à jour de systemd (pas de démarrage)

Exécutez les opérations suivantes 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
    
réponse donnée babelmonk 22.09.2015 - 11:17
la source
13

Voici comment:

  1. Installez le serveur X11VNC (ou via Ubuntu Centre de logiciels - & gt; X11VNC Server)

    sudo apt-get install x11vnc
    
  2. Créez un fichier de mot de passe VNC.

    sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
    
  3. Créez un fichier de travail dans l'éditeur nano (ou gedit, leafpad, etc.).

    sudo nano /etc/init/x11vnc.conf
    
  4. 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
    
    end script
    
  5. Enregistrez le fichier. Vous avez créé un travail pour l'événement Upstart login-session-start .

  6. Redémarrez Ubuntu.

C'est ça! Vous devriez maintenant pouvoir vous connecter avec n'importe quel client VNC avant même de vous connecter.

    
réponse donnée Didier A. 25.09.2014 - 20:33
la source
2

babelmonks répond comme un script bash, copiez et enregistrez sous x11vnc.sh & amp; exécuter avec sudo bash /path/to/file/x11vnc.sh (désolé, ne pas avoir assez de rep pour poster un commentaire)

#!/bin/bash
#install x11vnc & set password
apt-get install x11vnc -y
x11vnc -storepasswd 123456 /etc/x11vnc.pass
#create config file for  system service
cat > /lib/systemd/system/x11vnc.service <<-EOF
[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

[Install]
WantedBy=multi-user.target
EOF
#restart new services &  enable on boot
systemctl daemon-reload
systemctl start x11vnc
systemctl enable x11vnc
    
réponse donnée Nix Badweasel 03.01.2016 - 00:26
la source
1

Utilisez mon script pour une installation facile: installvncubuntu1604.sh

Utilisation:

chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
    
réponse donnée user665310 14.03.2017 - 17:20
la source
0

J'utilise mon propre shell: lien

start on login-session-start

script

sudo /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /var/srv/x11vnc/x11vnc.pass -forever -bg -rfbport <your_port> -o /var/srv/x11vnc/x11vnc.log

end script

dans le fichier:

/etc/init/x11vnc.conf

Cela le fait démarrer automatiquement au démarrage, même sur l’écran de connexion, il demande un mot de passe.

    
réponse donnée Деян Добромиров 12.03.2016 - 10:04
la source
0

Installer le paquet x11vnc

#sudo apt-get install x11vnc

Puis définissez le mot de passe

#x11vnc -usepw

Créez ensuite un script de démarrage pour x11vnc

#sudo nano /etc/x11vnc.sh

Dans un fichier:

/usr/bin/x11vnc -bg -forever -shared -reopen -usepw

Puis sauvegardez

#sudo chmod 777 /etc/x11vnc.sh

Ajoutez ensuite le fichier de script à Control Center = & gt; Application de démarrage Puis cliquez sur Ajouter

> Name-----------x11vnc

> Command-----<map the script file

> Comment------service

Ceci doit obligatoirement être ajouté pour tout utilisateur

Cela s’exécutera après la connexion de l’utilisateur uniquement

    
réponse donnée Nandhakumar M 23.08.2017 - 14:24
la source

Lire d'autres questions sur les étiquettes