X2Go mit SSH

Wofür braucht man X2Go mit SSH?


Warum ist ein verschlüsseltes Netz so wichtig?

Nehmen Sie sich zur Einleitung 10 Minuten Zeit und sehen sich diesen kurzen Film an:

Richard Albrecht beschreibt einfach und verständlich auf der Ubucon in Leipzig 2011, wie man mithilfe von SSH ein sicheres Netzwerk aufbauen kann und das mit wenigen Vorkenntnissen.


SSH (Secure Shell) für X2Go

OpenSSH ist fester Bestandteil bei allen anderen Linux-Distributionen und wird für verschlüsselte Verbindungen benutzt.
Eine ausführliche deutsche Beschreibung und Hilfe finden Sie unter: http://wiki.ubuntuusers.de/SSH
Im Folgenden finden Sie einige zusammenfassende Hinweise in Bezug auf X2Go.

Die Authentifizierung beim Verbindungsaufbau sollte in jedem Fall über Schlüssel erfolgen und ein einloggen nur mit Passwort verboten werden.

Authentifizierung über Public-Keys:

Authentifizierung über Public-Keys
  • X2Go-Server: Nur der öffentliche Schlüssel wird in dem Home-Verzeichnis des Nutzers im Unterverzeichnis .ssh aufbewahrt.
  • Der Public Key des Servers (/etc/ssh/ssh_host_rsa_key.pub) muss beim Nutzer, wo der X2Go-Client läuft, in die Datei /home/[user]/.ssh/known_hosts eingetragen werden.
  • Dies ist erforderlich, da hiermit der Zugang zum Server authentifiziert wird.
    Im zweiten Schritt wird die Session wird vom Client zum Server-Nutzer aufgebaut.
  • Dazu müssen beim Nutzer, wo der X2Go-Client läuft, ssh-Schlüssel generiert werden.
  • Schlüsselgenerierung: Die ssh-Schlüssel für den X2Go-Client werden mit Hilfe des Kommandozeilenprogramms ssh-keygen auf dem PC generiert, wo der Client läuft.
    Der Befehl:
    ssh-keygen -t rsa -b 4096
    erzeugt 4096 Bit rsa-Schlüssel für ssh.
    Es sollte bei der Generierung kein Passwort angegeben werden, da zwar eine Passwortabfrage für den Schlüssel erfolgt, aber  die Prozessorlast für X2Go 50 % höher ist. Außerdem wird die Session beim Schließen nicht beendet und bleibt hängen.
  • X2Go-Client: Der private (id_rsa) und der öffentliche Schlüssel (id_rsa.pub) werden im Home-Verzeichnis des Nutzers im Unterverzeichnis .ssh aufbewahrt.
  • Sicherheit der Schlüssel: Wer die Schlüssel besitzt, hat ohne weitere Abfrage Zugang zum Nutzerkonto auf dem Server.
    Darum sollten die Schlüssel sicher aufbewahrt werden.
    Bei einem Notebook empfiehlt es sich, die Festplatte oder das .ssh-Verzeichnis des Nutzers zu verschlüsseln.Alternativ kann man auch einen USB-Stick mit ext4-Dateisystem formatieren und verschlüsseln. Das ext4-Format hat gegenüber von fat32 den Vorteil, dass alle Nutzerrechte korrekt gesetzt sind und es eine höhere Sicherheit gegen Datenverlust bietet. Das .ssh-Verzeichnis wird in diesem Fall über einen Link in das Home-Verzeichnis des Nutzers eingebunden. Wenn Sie den USB-Stick einstecken, wird erst nach dem Passwort gefragt und nach erfolgreicher Authentifizierung das .ssh-Verzeichnis in das Home-Verzeichnis gemountet.
  • Nachdem der öffentliche Schlüssel im Home-Verzeichnis des Nutzers auf dem Server abgelegt ist, die Datei  /etc/ssh/sshd_conf ändern, dass nur noch eine Authentifizierung mit Schlüsseln erfolgen kann.

Folgende Zeilen in der /etc/ssh/sshd_config ändern:

  • AuthorizedKeysFile    %h/.ssh/authorized_keys
  • PasswordAuthentication no
  • UsePAM no

Anschließend im Terminal mit sudo systemctl reload ssh  die Konfiguration neu einlesen lassen, damit die Konfiguration aktiv wird.


X2Go Remote-Desktop

X2Go

Mit X2Go kann man einen entfernten PC so benutzen, als wäre man vor Ort.
Gegenüber dem mit Ubuntu installierten Remote-Desktop ist X2Go flexibler und erheblich performanter.
Basis von X2Go ist das schnelle NX Protokoll, das für eine Remote-Anbindung entwickelt wurde.
Für die verschlüsselte Verbindung wird ssh benötigt.

Die folgenden Informationen wurden aus verschiedenen Webseiten zusammengetragen.
Alle Codes unterliegen der GNU GPL und können daher beliebig abgeändert und weitergeben werden.
Der Grund für diese Zusammenstellung ist, dass es standardmäßig für Xubuntu keine Einbindung in X2Go gibt.

Eine deutsche Beschreibung für X2Go finden Sie in Wikipedia: http://de.wikipedia.org/wiki/X2go

X2Go Pakete für Ubuntu: http://wiki.x2go.org/doku.php/download:start

Die Lösung X2Go unter Xubuntu ans Laufen zu bringen, fand ich in einem Mail Archiv:
https://www.mail-archive.com/x2go-user@lists.berlios.de/msg00474.html
Die folgende Beschreibung unterscheidet sich nur dadurch, dass das Scipt beim Server nicht im Home-Verzeichnis des Nutzers, sondern unter /opt/x2go liegt. Dadurch ist es für mehrere Nutzer ausführbar und muss nicht in jedes Home-Verzeichnis kopiert werden.


X2Go-Server

Damit Xubuntu mit X2Go läuft sind ein paar Ergänzungen auf dem PC, wo der X2Go-Server läuft, erforderlich.

Legen Sie mit unter /opt zuerst ein Verzeichnis /x2go mit Root-Rechten an.
In dieses kopieren Sie das Script x2go_xubuntu bzw. x2go_debian und machen es ausführbar.

Download: x2go_xubuntu
Download: x2go_debian

Script: x2go_xubuntu

#!/bin/bash

# This script exports the variables and starts the
# x2go client with xfce4 desktop for Xubuntu.
#
# Dieses Script exportiert die Variablen und startet
# den x2go Client mit dem xfce4 Desktop für Xubuntu.

# ONLY Xubuntu / NUR Xubuntu
export XDG_CONFIG_DIRS=’/etc/xdg/xdg-xubuntu:/etc/xdg‘

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nx/X11

# Xubuntu and Debian with Xfce Desktop
# Xubuntu und Debian mit Xfce Desktop
export LANG=de_DE.UTF-8
exec /usr/bin/startxfce4

Es werden alle Pfade und Variablen exportiert und zum Schluss XFCE4 aufgerufen.

Sie können, wie hier dargestellt, die Zeile
export LANG=de_DE.UTF-8
zusätzlich einfügen, damit im X2Go-Terminal die Sprache deutsch ist.

Bei Debian Buster fehlen in der deutschen Tastatur die Tastenbelegungen für die Umlaute und der Block rechts.
Hier gilt im Prinzip das Gleiche wie für Xubuntu, aber:

# export XDG_CONFIG_DIRS=’/etc/xdg/xdg-xubuntu:/etc/xdg‘
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nx/X11
export LANG=de_DE.UTF8
exec /usr/bin/startxfce4


X2Go-Client

Beim Nutzer des Notebooks oder PCs muss unter
Sitzungsverwaltung –>  Sitzungsvoreinstellung –> Sitzung als

Sitzungsart: Andere Desktopumgebung

eingetragen werden.

Unter Befehl muss der Pfad auf dem Server angegeben werden, wo sich das Script befindet:

/opt/x2go/x2go_xubuntu
oder
/opt/x2go/x2go_debian

X2Go Sitzungsvoreinstellungen

Weiter: X2Go TippsUpdate: 29.12.2022