devcorner.schlenker-webdesign.de > Unix > Rootless X auf Windows
Home Unix LaTeX WWW Print
Diese Seite wurde am 1. April 2006 vorübergehend auf statisch umgestellt. Einige der vorgestellten Tutorials sind veraltet, Links tot und die Zeitangaben stimmen auch nicht. Im Laufe der nächsten Monate wird eine überarbeitete Seite folgen, auf die dann weitergeleitet wird.

Rootless X auf Windows

Achtung: dieses Tutorial benötigt Überarbeitung, so sind z.B. Scripte zum Setzen der Tastaturbelegung nicht mehr nötig. Eine gedruckte Version mit Überarbeitungen finden Sie in der PC!Linux 4/2004.
Friedlich vereinigt: Konqueror auf dem Windows98 Desktop

Sie kennen das Problem: zur Verwaltung eines Linux-Servers wäre es ganz praktisch die Fenster von Client- und Server-Programmen nebeneinander auf einem Rechner nutzen zu können? Oder Sie entwickeln Software oder Webseiten und möchten die Funktionalität auf zwei Systemen gleichzeitig testen können? Ohne KVM, ohne langsamer VM-Ware und ohne kompletten Desktop, wie er bei VNC verwendet wird? Oder eine wichtige Anwendung steht nur unter Linux oder Unix zur Verfügung.

Seit der Cygwin-Release des X-Servers gibt es eine komfortable freie Lösung für all diese Probleme, die wir auf dieser Seite näher beschreiben möchten:

Dieses Dokument beschreibt die Installation und Konfiguration des Cygwin X-Servers zum sicheren und komfortablen Zugriff auf einen Unix-Rechner. Dabei wird besonderen Wert darauf gelegt, daß auf dem Unix-Rechner als einziger Dienst SSH von außen zugänglich sein muß.

Dies erlaubt den Einsatz dieser Lösung auch in Umgebungen, in denen man selbst keine Root-Rechte hat, man aus Sicherheitsgründen auf die unverschlüsselte Übertragung von X verzichten möchte oder wegen der geringen Bandbreite Kompression gewünscht ist.

Zur Vereinfachung des Handlings wird X für den "Rootless Mode" konfiguriert. Die Fenster des Unix-Rechners erscheinen auf dem Windows-Desktop. Ein Klick auf ein Icon oder einen Menüeintrag startet den X-Server und die KDE-Leiste (der Screenshot zeigt die Microsoft Webseite unter einem Konqueror zusammen mit der KDE-Startleiste auf einem Win98-Desktop).

Download der Cygwin-Distribution

Auswahl des OpenSSH Paketes

Die Cygwin-Distribution ist auf http://www.cygwin.com/ erhältlich. Laden Sie die setup.exe herunter und speichern Sie diese ab (Sie brauchen sie noch öfters).

Nach Aufruf der setup.exe müssen Sie zunächst einen Mirror auswählen (Screenshot). Nicht alle Mirror haben alle aktuellen Pakete vorrätig, manchmal sind mehrere Versuche notwendig.

Bei der Paketauswahl müssen Sie darauf achten, daß sowohl OpenSSH, aus der Paketgruppe "Net" (Screenshot) als auch XFree86 (Screenshot) ausgewählt werden. Abhängige Pakete werden automatisch selektiert. Die zusätzliche Auswahl von Schriften in 100dpi (auch unter XFree86) ist sinnvoll.

Der Installer von Cygwin benötigt recht lange, um den Paketindex aufzubauen. Unter Umständen können hierfür 15 Minuten vergehen, in denen der Installer abgestürzt scheint, aber tatsächlich munter weiterarbeitet.

Bei der gesamten Cygwin-Installation werden je nach Umfang ca. 50MB bis 80MB heruntergeladen, d.h. Modem- oder ISDN-Nutzer sollten nach einer aktuellen Cygwin-Distribution auf CD Ausschau halten.

Erstes Login am Unix-Rechner

Mit dem Klick auf das Cygwin-Icon auf dem Desktop bekommen Sie nun eine Bash, wie gewohnt, nur daß diese eben unter Windows läuft. Mit dem Kommando

ssh user@192.168.1.247
Password:
(Passwort eingeben)
können wir uns nun auf dem Unix-Rechner mit der betreffenden IP-Adresse einloggen. Wird der Befehl ssh nicht gefunden, haben Sie vergessen, das entsprechende Paket zu installieren. Rufen Sie den Installer auf und installieren Sie OpenSSH nach.

Automatisieren des Logins

Wir verwenden SSH mit Public-Key-Authentication. Dazu benötigen wir ein Schlüsselpärchen. Der private Schlüssel verbleibt auf dem Windows-Rechner, der öffentliche Schlüssel wird dem Unix-Rechner bekannt gemacht.

Erzeugen des Schlüsselpaares

Erzeugen des Schlüsselpaares

Das Schlüsselpaar wird auf dem Windows-Rechner mit dem folgenden Befehl erzeugt (Screenshot), die Passphrase bleibt dabei leer:

ssh-keygen -t dsa

Bekanntmachen des öffentlichen Schlüssels

Achtung: bitte prüfen Sie vor dem Kopierversuch, ob auf dem Unix-Rechner ein Verzeichnis ~/.ssh existiert und ob dieses die richtigen Zugriffsrechte (0700) hat. Gegebenenfalls legen Sie es an:

ssh user@192.168.1.247
Password:
(Passwort eingeben)
mkdir -m 0700 ~/.ssh/

Zunächst wird der öffentliche Schlüssel auf den Unix-Rechner kopiert...

scp ~/.ssh/id_dsa.pub user@192.168.1.247:~/.ssh/id_dsa.pub.cygwin
Password:
(Passwort eingeben)

...und dort dann den zugelassenen Schlüsseln hinzugefügt. Dazu loggen wir uns auf dem Unix-Rechner ein und fügen den Schlüssel den zugelassenen hinzu (Screenshot):

ssh user@192.168.1.247
Password:
(Passwort eingeben)
cat .ssh/id_dsa.pub.cygwin >> .ssh/authorized_keys

Test der Konfiguration

Eine einsame Xclock

Nachdem die Schlüssel erzeugt wurden, können wir das automatische Login einmal testen. Dazu starten wir einen X-Server, teilen das DISPLAY der Shell mit, loggen uns am Unix-Rechner ein und starten ein grafisches Programm (beispielsweise xclock oder xterm):

X -rootless &
export DISPLAY=localhost:0.0
ssh -C -X user@192.168.1.247 xclock

Es erscheint eine einsame Xclock (Screenshot) im linken oberen Eck des Bildschirmes! Noch fehlt der Windowmanager und die Änderung der Tastaturbelegung (Cygwin kommt gemeinerweise nur mit US-Tastaturlayout). Das erledigen wir gleich mit dem Startscript auf Seiten des Unix-Rechners:

Startscript auf dem Unix-Rechner

Laden Sie zunächst die Datei .Xmodmap.cygwin herunter (an dieser Stelle vielen Dank an Sascha Wüstemann) und speichern Sie selbige auf dem Unix-Rechner unter ~/.Xmodmap.cygwin. Auf dem Unix-Rechner legen wir in unserem Heimatverzeichnis ein Script ~/startup-unix.sh mit folgendem Inhalt an:

#!/bin/sh

# Bitte Pfad anpassen! (das mit "which kwin"
# herausgefundene Verzeichnis)
KDE_PATH=/opt/kde3/bin
PATH=$PATH:${KDE_PATH}

# Starten des KDE-Windowmanagers
${KDE_PATH}/kwin &

# 5 Sekunden Pause (für langsame Win-Rechner leider notwendig)
sleep 5

# Laden der Tastaturbelegung für Cygwin
/usr/X11R6/bin/xmodmap ${HOME}/.Xmodmap.cygwin

# Starten des KDE-Panels
${KDE_PATH}/kicker

Machen Sie das Script mit dem Befehl chmod +x ~/startup-unix.sh ausführbar.

Auch hier testen wir wieder, indem wir am Windows-Rechner folgende Befehlsfolge eingeben:

X -rootless &
export DISPLAY=localhost:0.0
ssh -C -X user@192.168.1.247 ~/startup-unix.sh

Was wir nun zu sehen bekommen, entspricht schon dem Endergebnis, wir benötigen nur noch ein Startscript für den Windows-Rechner und ein Icon auf dem Desktop:

Startscript auf dem Windows-Rechner

Friedlich vereinigt: Konqueror auf dem Windows98 Desktop

Auf dem Windows-Rechner legen wir in unserem Heimatverzeichnis (von außerhalb Cygwins ist dieses unter X:\Cygwin\home\username erreichbar) ein Script ~/startup-win.sh mit folgendem Inhalt an:

#!/bin/sh

UNIX_USER=mattias
UNIX_HOME=/home/mattias
UNIX_IP=192.168.1.247

# Starten des X-Servers
/usr/X11R6/bin/X -rootless &

# Setzen der DISPLAY-Variable
export DISPLAY=localhost:0.0

# Login und triggern des Startup-Scripts auf Unix-Seite
ssh -C -X ${UNIX_USER}@${UNIX_IP} ${UNIX_HOME}/startup-unix.sh

Nun sind wir ganz nahe dran... Es reicht bereits der folgende Befehl, um unser KDE-Panel auf den Windows-Desktop zu bekommen:

sh startup-win.sh

Den Rest macht ein...

Icon auf dem Desktop

Jetzt genügt es, auf dem Windows-Desktop eine Batchdatei mit folgendem Inhalt anzulegen:

@echo off

X:
chdir X:\cygwin\bin
bash /home/mattias/startup-win.sh

Der Laufwerksbuchstabe und der Username sind natürlich noch anzupassen. Ein Klick auf die Batchdatei und das KDE-Panel erscheint auf dem Windows-Rechner...

Have fun!

Ihr Mattias Schlenker


/dev/corner news
Visitenkarten mit LaTeX (27.10.2004)
X.org unter FreeBSD 5.2.1 (25.07.2004)
Kurzanleitung OpenOffice.org und MySQL (SuSE) (14.05.2004)
Neues Howto -- OpenOffice.org und PostgreSQL (FreeBSD) (02.05.2004)
Tip des Tages (FreeBSD) -- Multisession Datensicherung quick and dirty (18.04.2004)
Tip des Tages (Linux/Unix) -- Wörterbuch auf Tastaturshortcut (18.02.2004)
Werbung
Christall Folientechnik – Kastenhauben und technische Folien in Sondergrößen
Cycle-Sport GmbH Heilbronn – Ihr Spezialist für sportliche Mountainbikes
www.getriebeteile.com – Ihre günstige Quelle für Ersatzteile von PKW-Getrieben
Impressum · Mattias Schlenker · 04275 Leipzig · · ms@mattiasschlenker.de · 02.04.06, 14:49:31