So konfigurieren Sie die Standard-DISPLAY-Variable auf gdm, damit x11vnc funktioniert (geändert von CentOS 7 in CentOS 8)

So konfigurieren Sie die Standard-DISPLAY-Variable auf gdm, damit x11vnc funktioniert (geändert von CentOS 7 in CentOS 8)

Problem: GDM/KDE verwendet in CentOS 8 standardmäßig DISPLAY :1 statt DISPLAY :0, ich möchte aber, dass es DISPLAY :0 wie in CentOS 7 verwendet. Dies wirkt sich auf x11vnc aus und bereitet noch mehr Kopfschmerzen beim VNC-Zugriff auf die Maschinen (ich kann mich jetzt überhaupt nicht mehr per VNC mit dem Anmeldebildschirm verbinden).

Alte/funktionierende Version

  • CentOS 7
  • KDE SC Version 4.14.8
  • GDM Version 3.28.2

Wenn wir uns per SSH mit der alten Maschine verbinden, um x11vnc auszuführen, sehen wir, dass :0 die ANZEIGE ist

$ w -us
USER   TTY   FROM  IDLE   WHAT
user   :0    :0    ?xdm?  /bin/sh /usr/bin/startkde

Defekte/neue Version

  • CentOS Stream 8
  • KDE Plasma Version: 5.18.4
  • GDM Version 40.0

Wenn wir uns per SSH in eine neue Maschine einloggen, um x11vnc auszuführen, können wir sehen, dass :1 das DISPLAY ist

$ w -us
USER   TTY   FROM  IDLE   WHAT
user   :1    :1    ?xdm?  /usr/libexec/gdm-x-session --register-session --run-script /usr/bin/startplasma-x11
user   pts/0 :1   46:05  kded5

Um x11vnc in einer angemeldeten Sitzung auf CentOS 8 zu starten, muss ich nun ausführen x11vnc -display :1, was keine große Sache ist, nur ein wenig nervig und einige Skripte beeinflusst. Das größere Problem ist, dass ich jetzt nicht per VNC auf den Anmeldebildschirm zugreifen kann. Verwenden von deaktivierten Varianten ssh -X x11vnc -display :1, Ausführen als Root und mehr.

Beide haben genau dieselbe SSH-Konfiguration (X11-Weiterleitung und so).

Bearbeiten:

Fehler beim Versuch, per VNC auf den Anmeldebildschirm zuzugreifen:

~> ssh user@centos8
$ echo $DISPLAY 

$ x11vnc # this works on CentOS 7 w/ and w/o X11 forwarding 
...
10/06/2021 16:28:55 *** XOpenDisplay failed. No -display or DISPLAY.
Invalid MIT-MAGIC-COOKIE-1 key10/06/2021 16:28:59 XOpenDisplay(":0") failed.
10/06/2021 16:28:59 Trying again with XAUTHLOCALHOSTNAME=localhost ...
Invalid MIT-MAGIC-COOKIE-1 key10/06/2021 16:28:59 XOpenDisplay(":0") failed.
10/06/2021 16:28:59 Trying again with unset XAUTHLOCALHOSTNAME ...
Invalid MIT-MAGIC-COOKIE-1 key10/06/2021 16:28:59 
...
10/06/2021 16:28:59 ***************************************
10/06/2021 16:28:59 *** XOpenDisplay failed (:0)
...

$ x11vnc -display :1
10/06/2021 16:30:16 *** XOpenDisplay failed (:1)
$ exit

~> ssh -X user@centos8
$ echo $DISPLAY
localhost:10.0
$ x11vnc
...
10/06/2021 16:24:16 WARNING: DISPLAY starts with localhost: 'localhost:10.0'
10/06/2021 16:24:16 WARNING: Is this an SSH X11 port forwarding?  You most
10/06/2021 16:24:16 WARNING: likely don't want x11vnc to use that DISPLAY.
10/06/2021 16:24:16 WARNING: You probably should supply something
10/06/2021 16:24:16 WARNING: like: -display :0  to access the physical
10/06/2021 16:24:16 WARNING: X display on the machine where x11vnc is running.
...
X11 MIT Shared Memory Attach failed:
  Is your DISPLAY=localhost:10.0 on a remote machine?
  Note:   DISPLAY=localhost:N suggests a SSH X11 redir to a remote machine.
  Suggestion, use: x11vnc -display :0 ... for local display :0

caught X11 error:
10/06/2021 16:24:17 deleted 53 tile_row polling images.
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  130 (MIT-SHM)
  Minor opcode of failed request:  1 (X_ShmAttach)
  Serial number of failed request:  56
  Current serial number in output stream:  111

$ x11vnc -display :1 
...
10/06/2021 16:26:16 *** XOpenDisplay failed (:1)
...

Ähnliche Fehler beim Ausführen als Root

Antwort1

Ich habe von CentOS7 gdm-3.28.2-26.el7.x86_64.rpm und pulseaudio-gdm-hooks-10.0-6.el7_9.x86_64.rpm heruntergeladen und diese beiden Pakete auf Rocky Linux 8 (8.4) installiert (herabgestuft) mit: dnf install gdm-3.28.2-26.el7.x86_64.rpm pulseaudio-gdm-hooks-10.0-6.el7_9.x86_64.rpm

gdm verwendet in dieser etwas älteren Version „DISPLAY :0“ und ich kann mich mit x11vnc beim Anmeldebildschirm anmelden. Ich bin mir nicht sicher, welche Abhängigkeiten gdm hat und welche Nebenwirkungen auftreten können. Durch die Aktualisierung des Betriebssystems wird die neuere gdm-Version von Rocky Linux 8 neu installiert, die „DISPLAY :1“ verwendet.

Antwort2

Ich habe dasselbe Problem, wirklich ärgerlich. Meine brachiale Lösung bestand darin, VNC einfach in ein Skript einzubinden, das jede der Anzeigen :0 und :1 ausprobiert. :0 ist immer der Anmeldebildschirm und :1 ist immer die Gnome-Sitzung. Damit kann ich mich per VNC bei der Workstation anmelden. Dann wird die VNC-Sitzung beendet, ich muss sie neu starten, dann kann ich meinen Desktop sehen. Beim Abmelden wird auch X beendet, sodass die VNC-Sitzung erneut beendet wird.

Etwas wie,

(
while true; do
   for displayNum in {0..1} ; do
      if ! pgrep -f "x11vnc -repeat -display" > /dev/null; then

         currentUserId=$(pgrep -x gnome-shell |
                         xargs --no-run-if-empty ps -ho uid |
                         awk '{print $1}')

         x11vnc -repeat -display ":${displayNum}" -rfbport 5900 \
                -shared -auth /run/user/${currentUserId}/gdm/Xauthority \
                -forever
         sleep 0.5
      else
         sleep 10
      fi
   done
done
) &

verwandte Informationen