Was wird aus VNC/Veyon-Fernsteuerung wenn X.org wegfällt?

Salut,

macht sich eigentlich schon jemand Gedanken darüber, wie die Clientfernsteuerung laufen soll, wenn X.org final wegfällt ? Die Umstellung zu wayland läuft ja inzwischen an allen Ecken und Enden: in ubuntu 26.04 ist x schon nicht mehr Teil der default installation, gnome 50 ist auch waylandbasiert. Sicherlich kann man das noch eine Zeit durch frickeln retten, aber irgendwann wird’s vorbei sein. Stand jetzt gibts mit wayland aber keine Möglichkeit des vnc-Zugriff mehr (was auch veyon und damit auch edulution betriff).

Deswegen würde mich interessieren, ob jemand schon eine wayland-taugliche Methode gefunden hat, um Schüler-PCs fernzusteuern ?

Gruß

Sascha

Manchmal setzt fragen ja bei einem selbst einen Denkprozess in Gang, zumindest für mich habe ich jetzt eine Lösung…wir benutzten allerdings auch kein Veyon zum Schülerbeobachten, sondern ein selbstgeschriebenes Skript, das bei Bedarf per ssh auf dem Schüler einen vnc-server startet und sich dann auf diesen verbindet.
Unter wayland kann man mit remmina per rdp verbinden und die dafür benötigte bildschirmfreigabe auf dem client ebenfalls skriptgesteuert aktivieren.

Dafür kommt demnächst ein Skript auf die Clients, das in etwa so aussieht:

# Skript /usr/local/bin/bildschirm_freigeben
#!/bin/bash

if [ $USER = "root" ];then
  ## Als root: ggf nachinstallieren
  which winpr-makecert3 > /dev/null || apt -y install winpr3-utils

  user=$(who|grep 'login'|cut -d" " -f 1)
  userid=$(id -u $user)
  sudo -u $user \
   DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$userid/bus" \
    XDG_RUNTIME_DIR="/run/user/$userid" \
   $0 $@
else

  winpr-makecert3 -silent -rdp -path /tmp blubb
  grdctl rdp set-tls-key /tmp/blubb.key
  grdctl rdp set-tls-cert /tmp/blubb.crt
  grdctl rdp enable
  grdctl rdp disable-view-only
  gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode mirror-primary
  grdctl rdp set-credentials $1 $2
fi

Das „Lehrerskript“ zum beobachten ist dann in etwa sowas:

#!/bin/bash


if [[ $# -lt 1 ]];then
  echo "Rechnername/IP eingeben"
   exit 0
fi

## Wenn nur eine Rechnernummer angegeben wird - Raumname davor setzen
## Setzt das Namensschema raum-rechnernr vorraus
if [ -n "$1" ] && [ "$1" -eq "$1" ] 2>/dev/null; then
    RAUM=$(hostname | cut -d'-' -f1)
    NO="$1"
    if test $NO -gt 9 ; then
      host=$RAUM'-'$NO
    else
      host=$RAUM'-0'$NO
    fi
else
	host="$1"   
fi


password=$RANDOM

freigeben(){
	CMD='/usr/local/bin/bildschirm_freigeben mightyteacher $2'
	(sudo ssh 2>&1 -o ConnectTimeout=2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$1 "$CMD") >/dev/null  
}


sudo echo "Bildschirm freigeben auf $host"
freigeben "$host" "$password" &
echo 'Kurz warten'
sleep 1
echo .
sleep 1
echo "Verbinden mit $host"

remmina -c rdp://mightyteacher:$password@$host


Der ssh funktioniert natürlich nur, wenn Leheraccounts sudoer sind und im Rootverzeichnis des Clients ssh-Schlüssel hinterlegt sind.