Lösung 2: Verbindung zur GUI mit VNC herstellen
VNC (Virtual Network Computing) bietet eine weitere Möglichkeit, einen Remote-Desktop fernzusteuern.
VNC basiert ebenfalls auf dem Client-Server-Prinzip:
Auf dem Remote-Host läuft ein VNC-Server auf den man sich mit einem VNC-Client, dem sogenannten VNC-Viewer verbindet. Der VNC-Viewer überträgt Tastatur- und Mausereignisse an den entfernten VNC-Server, der diese Eingaben dann in der dort laufenden graphischen Oberfläche macht und nur die entsprechenden Bildschirmveränderungen zurückgibt, um Bandbreite zu sparen.
Die Datenübertragung kann dabei unverschlüsselt geschehen, was über das Internet unbedingt zu vermeiden ist! Daher muss zunächst der SSH-Server auf dem Remote-Host gestartet werden, falls noch nicht geschehen.

VNC-Server auf dem Remote Host starten
Zu Beginn der Installation sollte das Betriebssystem des Raspberry Pi aktualisiert werden:
sudo apt-get updateMit Raspbian kommt RealVNC. Dieser VNC-Server würde sich problemlos mit
über die Interface Options aktivieren lassen. Da RealVNC aber einigen Einschränkungen unterliegt, wird hier dagegen den TightVNC-Server installiert:sudo raspi-config
sudo apt-get install tightvncserver
Der RealVNC-Server wird dabei automatisch deinstalliert.
Eine Session würde sich mit folgendem Kommando starten lassen.
vncserver :1
Beendet wird diese Session mit:
vncserver :1 -killDa nun eine direkte SSL-verschlüsselte Verbindung aufgebaut werden soll, starten wir die Session mit dem Parameter "-localhost"
vncserver :1 -geometry 1920x1080 -depth 16 -name raspi -localhost
-localhost: Der Parameter verhindert, dass die
VNC-Session über das Internet ungesichert aufgebaut werden kann. Es muss zuerst eine sichere SSH-Verbindung herstellt
und darüber die VNC-Session betrieben werden.
-geometry: Mit diesem Parameter legt man die Auflösung des Desktops fest, die an den VNC-Client übertragen werden soll. Sinnvoll sind nur vom Client darstellbare Auflösungen. Sind die Werte zu groß, dann sind Teile des Desktops verdeckt und es muss im Fenster des VNC-Clients gescrollt werden. Soll mit Vollbild gearbeitet werden, dann muss die Auflösung des Clients eingetragen werden. Aber, je höher die Auflösung, desto größer ist auch das zu übertragende Datenvolumen. Im lokalen Netzwerk ist das weniger ein Problem, über das Internet dagegen schon.
-depth: Mit diesem Parameter legt man die Farbtiefe in Bit der zu übertragenden Bilder fest. Die beste, farblich detaillierte Darstellung bekommt man mit den Werten von 24 bzw. 32. Allerdings erfordert das eine entsprechend hohe Bandbreite bzw. Übertragungsgeschwindigkeit, um das dabei entstehende Datenvolumen übertragen zu können. In der Regel erreicht man das nur im lokalen Netzwerk. Ein Wert von 16 ist mit Sicherheit auch akzeptabel. Ein Wert von 8 das Minimum. Je geringer der Wert, desto geringer ist das Datenvolumen und desto höher ist die notwendige Bandbreite.
-name: Mit diesem Parameter legt man den Namen fest, der im VNC-Client angezeigt werden soll. Interessant ist das dann, wenn man mit mehreren VNC-Sessions zu unterschiedlichen Systemen arbeitet und die Fenster voneinander unterscheiden möchte.
SSH-Tunnel einrichten
Von Windows aus lässt sich eine SSH-Tunnel leicht mit PuTTY einrichten.
Der VNC-Port 5901 der lokalen Maschine wird per SSH auf den gleichen Port des zu steuernden Remote Host weitergeleitet (ADD anklicken vor dem Herstellen der Verbindung):

Von Linux aus lässt sich der SSH-Tunnel leicht von der Konsole aus einrichten:
ssh -L 5901:localhost:5901 -N -f -l pi hostname
Öffnen der VNC-Verbindung
Auf der lokalen Maschine wird jetzt ein VNC-Client gestartet. In diesem Beispiel ist das der VNC-Viewer von TightVNC, der für verschiedene Betriebssysteme kostenfrei heruntergeladen werden kann.

Abschließend authentifiziert man sich als VNC-User:


Um das Kopieren von Text mit "Copy & Paste" in beide Richtungen zu ermöglichen muss
das Paket autocutsel auf dem Raspberry Pi installiert werden:sudo apt-get install autocutselDann wir die Datei /home/pi/.vnc/xstartup editiert:nano /home/pi/.vnc/xstartupundhinzugefügt:
autocutsel -fork#!/bin/shxrdb $HOME/.Xresources
xsetroot -solid grey
autocutsel -fork
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/XsessionDann muss der VNC Server neu gestartet werden:
vncserver –kill :1 (pick your display)vncserver :1 -geometry 1920x1080 -depth 16 -name raspi -localhost
https://www.linode.com/docs/networking/ssh/using-ssh-on-windows/
https://www.childs.be/blog/post/remove-real-vnc-from-raspberrypi-pixel-and-install-tightvnc
https://www.elektronik-kompendium.de/sites/raspberry-pi/2012011.htm
https://www.raspberrypi.org/documentation/remote-access/vnc/