Applikationsserver light per SSH X-Forwarding
Ich habe hier einen Applikationsserver auf Linux für Windowsclients gebaut. Die Anleitung dazu möchte ich Euch nicht vorenthalten. Sie ist auf SuSE 10 und WindowsXP getestet. Danken möchte ich haveaniceday, traffic und gaw für Ihre Hinweise hier im Club, die wesentlich zum Gelingen dieses Projektes beigetragen haben.
Also, wenn Ihr:
- einen Linuxserver habt,
- in einem Sambanetzwerk,
- und Software zentral verwalten wollt,
- oder es manche Software für Windows nicht gibt,
dann geht folgendermaßen vor.
1. Installiert auf allen Windowskisten Cygwin (www.cygwin.com) inklusive OpenSSH und einem X-Server. 2. Damit die Nutzerinnen nicht jedes Mal Ihr Passwort eingeben müssen, wenn sie ein Programm auf dem Server starten, bauen wir eine Publickey-Anmeldung auf. Dies wird per folgendem Batchfile auf den Clients automatisiert.
- rem Wechseln auf Laufwerk LAUFWERK:
- LAUFWERK:
- rem Wechseln in Nutzerinnenverzeichnis
- cd "Documents and Settings\%USERNAME%
- rem Erstellung des Verzeichnisse .ssh
- mkdir .ssh
- rem Wechseln in das Cygwin-Programmverzeichnis
- cd LAUFWERK:\cygwin\bin
- rem Erstellung des Schlüsselpaares im erstellten Verzeichnis
- ssh-keygen -b 2048 -t rsa -v -f "/cygdrive/c/Documents and Settings/%USERNAME%/.ssh/id_rsa"
- rem Wechseln ins Stammverzeichnis von Laufwerk LAUFWERK:
- cd LAUFWERK:\
- rem Erstellung des Verzeichnisses .ssh im Linuxhome der Nutzerin
- mkdir \\SAMBASERVER\profiles\%USERNAME%\.ssh
- rem Kopieren des öffentlichen Schlüssels dorthin
- copy "LAUFWERK:\Documents and
- Settings\%USERNAME%\.ssh\id_rsa.pub" \\SAMBASERVER\profiles\%USERNAME%\.ssh\id_rsa.pub
- rem Wechseln in das Cygwin-Programmverzeichnis
- cd LAUFWERK:\cygwin\bin
- rem Einfügen des öffentlichen Schlüssels in die Liste der erlaubten Schlüssel
- cat "LAUFWERK:\Documents and Settings\%USERNAME%\.ssh\id_rsa.pub" >> \\SAMBASERVER\profiles\%USERNAME%\.ssh\authorized_keys
- rem Stoppen der Scriptabarbeitung und Aufforderung, eine Taste zu drücken
- pause
Bei mir liegen die Homes und die Sambaprofile im selben Verzeichnis. Sollte das bei Euch nicht so sein, müßt Ihr eben die Pfade anpassen. Die Nutzerinnen müssen dann nur noch darauf achten, eine leere Passphrase zu erstellen.
3. Der Samba- und SSH-Server muß X-Forwarding erlauben.
4. Dann nehmt die Datei startxwin.bat aus /usr/X11R6/bin im Cygwinverzeichnis und editiert sie. Fügt oben
- path LAUFWERK:\cygwin\bin;LAUFWERK:\cygwin\X11R6\bin
ein und ersetzt ziemlich weit unten die Zeile 'xterm -e /usr/bin/bash -l' durch
- run ssh -Y -v -C -i "/cygdrive/LAUFWERK/Documents and Settings/%USERNAME%/.ssh/id_rsa" %USERNAME%@SSH-SERVER LC_ALL=de_DE.ISO-8859-1 /PFAD/PROGRAMM
Dann speichert das Ganze unter einem beschreibenden Namen mit der Endung .bat im selben Verzeichnis.
5. Legt noch einen Shortcut ins Startmenü für alle Nutzerinnen. Jetzt sollten alle Nutzerinnen, die einmal das Schlüsselerstellungsscript haben laufen lassen einfach per Klick auf auf das Symbol im Startmenü das Programm starten können.
Ich weiß, daß die Scripte nicht das Gelbe vom Ei sind, für Verbesserungen bin ich offen. Ansonsten wünsche ich viel Spaß damit.
Nachtrag: Ich habe jetzt die homes und die profiles getrennt. Also habe ich in der smb.conf eine Freigabe erstellt wie folgt:
- [homes]
- browseable = no
- read only = no
Aus dem Schlüsselerstellungsbatchfile mußte ich dann noch 'profiles/' aus den Serverpfaden löschen, dann wird auf das jeweilige home zugegriffen. So sind die Linux- und die Windowsprofile zwar getrennt, aber das zu übertragende Volumen bei einer Windowsanmeldung sinkt enorm.
Rolle