xauth
Das Werkzeug xauth dient der Steuerung der Zugriffskontrolle auf einen X Window System-Server und benutzt dazu kryptografische Cookies. Alle Cookies werden im Verzeichnis "~/.Xauthority" gespeichert. Jeder gestartete Client sieht in diese Datei hinein und benutzt das passende Cookie, um sich beim X-Server zu identifizieren.
xauth kontrolliert allerdings nur, wer auf einen X-Server zugreifen darf - die übertragenen Daten sind damit noch in keiner Weise geschützt. SSH hilft dabei, das X-Protokoll durch eine verschlüsselte Verbindung zu tunneln. Das Programm sorgt für Verschlüsselung, setzt die Umgebungsvariablen richtig und legt für den Zugriff per xauth eine ".Xauthority"-Datei auf dem fremden Rechner an.
Verwendung
Session Cookies importieren
Um die eigene Sitzung auf einem fremden Rechner oder mit einem anderen Benutzerkonto auf dem gleichen Rechner zu benutzen, muss das Cookie in die eigene ".Xauthority" importiert werden. "xauth nextract" speichert das Cookie zunächst in einer Datei ab. Der Befehl "xauth nmerge" importiert die Datei in ".Xauthority".
abc:~> xauth nextract myxkey :0 abc:~> chmod 640 myxkey abc:~> su unsafe Password: unsafe:/home/abc> firefox Xlib: connection to ":0.0" refused by server Xlib: No protocol specified (firefox-bin:3086): Gtk-WARNIN **: cannot open display: :0 unsafe:/home/abc> xauth nmerge myxkey unsafe:/home/abc> firefox
X11-Tunnel mit SSH
Voraussetzung für einen X11-Tunnel mit SSH ist, dass in der Datei "/etc/ssh/sshd_config" (und allenfalls "/etc/ssh/ssh_config") die Variable "X11Forwarding" auf "yes" gesetzt ist. Danach startet der Benutzer über die Befehlszeilenoption "-X" einen Tunnel für X11. SSH stellt dann auf dem entfernten Rechner einen virtuellen X-Server bereit (meist ":10"), dessen Clients auf dem lokalen X-Server angezeigt werden.
abc@kiki:~> ssh -X kluku.xxx.com [...] abc@kluku:~> echo $DISPLAY localhost:10.0 abc@kluku:~> firefox &