Brücken bauen - Windows und Linux im Netzwerk

Vorwort

Will man ein Windowssystem mit einem Linuxsystem miteinander kommunizieren lassen, gibt es immer zwei Wege. Windows kann von Haus aus im Netzwerk nichts als sein mitgeliefertes CIFS-Protokoll (früher: SMB), dass sowohl für die Datei- und Druckerfreigaben, als auch für die Netzwerkliste zuständig ist. Um auf einem Linuxsystem Ordner und Drucker für die Benutzung unter Windowssystemen zu ermöglichen, gibt es das Samba-Projekt, das eine Implementierung von CIFS darstellt. Will man einen Linuxserver für Windowsdienste betreiben, installiert und konfiguriert man sich die Samba-Pakete und sieht dann auf der Windowsseite den Linuxrechner wie einen normalen Windowsrechner in der Netzwerkliste und kann sich von dort die freigegebenen Verzeichnisse als Netzlaufwerke permanent verbinden.

Man kann auch den umgekehrten Weg gehen und die Netzwerkfähigkeiten auf der Windowsseite nachrüsten. Mit den entsprechenden Programmen können einerseits Dateien ausgetauscht, die Kommandozeile des Linuxsystems bedient oder sogar ein kompletter Linuxdesktop (oder auch nur einzelne Programme) auf dem Windowsdesktop dargestellt werden. Über dieser Variante soll das folgende Tutorial eine kleine Übersicht der Möglichkeiten und dafür notwendigen Programme liefern.

« zurück (Gesammelte Anleitungen)

Inhalt

« zurück (Gesammelte Anleitungen)

PuTTY - ein Freeware SSH-Client für Windows

PuTTY ist eine freie Implementierung der Telnet und SSH-Protokolle für Windows und UNIX-Systeme von Simon Tatham, der es programmiert hat und auch weiterhin wartet. Er ist somit der Maintainer von PuTTY, um im Jargon der freien Software zu bleiben. :-)

Alle im Folgenden beschrieben Aktionen beziehen sich auf die Windows-Variante, genauer das installierbare Paket von PuTTY. Alle diese Programme gibt es auch als separate Dateien zum Herunterladen auf der PuTTY Webseite.

Einführung und Voraussetzungen für den Einsatz

Um PuTTY überhaupt einsetzen zu können, benötigt man natürlich einen Linuxrechner, auf dem man einen Shell-Zugang hat und von Windows aus zugreifen will. Die beiden Rechner müssen natürlich vernetzt sein, auf dem Linuxrechner muss ein SSH-Server laufen und die gewünschten Anwendungen müssen installiert sein. Wenn so ein beschriebenes Szenario nicht vorliegt, braucht man PuTTY auch nicht.

Mitgelieferte Programme

Zuerst einmal gibt es hier eine alphabetische Übersicht mit Kurzbeschreibung der Programme aus dem PuTTY-Paket:

  • pageant.exe:
    Pageant ist ein sogenannter SSH-Agent, der Public Keys und deren Passwörter speichert und diese an anfragende Anwendungen weitergibt. Das ermöglicht ein komfortables Anmelden an Remotecomputern, ohne dass man ständig erneut sein Passwort angeben muss. Doch dazu später mehr.
  • plink.exe:
    Die Kommandozeilenvariante von putty.exe.
  • pscp.exe:
    Ein Kommandozeilenprogramm, mit dem man Dateien via SCP zwischen zwei Systemen kopieren kann.
  • psftp.exe:
    SFTP ist die verschlüsselte Variante von dem weit verbreiteten FTP, dass zur Übertragung von Dateien im Internet verwendet wird. Das Programm psftp.exe ist somit ein Kommandozeilenprogramm, um mehrere Dateien über eine gesicherte Verbindung zu übertragen und ist ähnlich zu bedienen, wie sein unverschlüsseltes Pendant ftp.exe.
  • putty.exe:
    Das Hauptprogramm, das normalerweise gemeint ist, wenn jemand von PuTTY spricht.
  • puttygen.exe:
    Ein Programm zum erzeugen von Schlüsselpaaren, die für die Authentifizierung über Public Keys benötigt werden. Zu der Verwendung wird noch bei der Public Key Authentifizierung genauer eingegangen.

« nach oben

PuTTY Grundkonfiguration

Screenshot des Hauptfensters von PuTTY

Wenn man das Programm PuTTY startet, bekommt man das Konfigurationsfenster zu sehen, das hier rechts abgebildet ist. Es besteht aus einem hierarchischen Baum auf der linken Seite, in dem die verschiedenen Einstellungen in Bereiche zusammgefasst sind. Je nach Auswahl des Bereichs ändert sich die rechte Hälfte des Fensters und zeigt die für diesen Punkt angebotenen Einstellmöglichkeiten an. Die oberste Ebene gliedert sich in die folgenden Bereiche:

  • Session:
    Hier befindet sich die Verwaltung der Sitzungen. Es können gespeicherte Sitzungen geladen oder die aktuelle Konfiguration gespeichert werden. Außerdem kann unter dem Namen "Default Settings" das Standardprofil gespeichert werden.
  • Terminal:
    Unter diesem Punkt sind die Einstellungen zum verwendeten Terminaltyp sowie der Tastatur und dem Warnverhalten (*beep*) einzustellen. Falls z. B. die Backspace-Taste einer Verbindung nicht wie erwartet funktioniert, kann man mal an diesen Einstellungen drehen.
  • Window:
    Einstellungen rund um die Darstellung inkl. Schrift- und Hintergrundfarbe des Terminalfensters.
  • Connection:
    Die Einstellungen der Verbindung zum Remoterechner befinden in dieser Gruppe. Auf Auszüge dieser Kategorie wird später noch genauer eingegangen. Die Gruppe ist wiederum weiter untergliedert in die verschiedenen Verbindungstypen (Telnet, RLogin, SSH, etc.), wobei hier nur auf die Untergruppe SSH näher eingegangen wird.

Oft verwendete Sitzungen kann und sollte man also abspeichern. Zu einer Sitzung gehören mindestens der Hostnamen oder die IP-Adresse des entfernten UNIX-Systems und der Verbindungstyp. Der Port ändert sich je nach Auswahl des Verbindungstyps automatisch auf den für die gewählte Verbindung typischen Standardport, also z. B. 22 für SSH und 23 für Telnet. Anschließend vergibt man noch einen Namen für die Verbindung und drückt auf "Save". Die neue Verbindung taucht jetzt in der Liste unterhalb des Eintrags "Default Settings" auf und kann jederzeit via Doppelklick gestartet oder mit dem Knopf "Load" zum Ändern geladen werden.

Kaputte Umlaute - falscher Zeichensatz

Werden Umlaute einer Sitzung falsch angezeigt, liegt es wahrscheinlich an einem falsch eingestellten Wert unter dem Punkt "Translation" im Kombinationsfeld "Received data assumed to be in which dataset". Dieser Wert hängt von dem verwendeten Zeichensatz des Zielsystems ab.

Die neueren Systeme (z. B. debian "etch" ab 2007) verwenden die Codierung UTF-8, bei älteren Systemen ist ISO-8859-1 bzw. ISO-8859-15 (mit Eurozeichen) eine gute Wahl.

Unter Umständen lässt sich der verwendete Zeichensatz durch den Wert der Umgebungsvariable LANG ermitteln:

$ echo $LANG
de_DE.UTF-8

In diesem Fall ist der richtige Wert also UTF-8.

« nach oben

Übernahme der PuTTY-Sitzungen auf einen anderen Rechner

Screenshot von RegEdit, Export der PuTTY-Sessions

Wenn man eine größere Anzahl an Sitzungen erzeugt hat, möchte man diese evtl. auch auf einen anderen Rechner übertragen. PuTTY speichert seine Konfiguration in der Windows Registry, der internen, hierarchischen Verwaltungsdatenbank von Windows. Will man also seine Sitzungen übertragen, muss man den für die Speicherung vorgesehenen Ast aus der Registry exportieren.

Hierzu öffnet man den Registry-Editor regedit.exe, indem man z. B. über Start, Ausführen geht und dann "regedit" als zu startende Anwendugn eingibt. Das rechts dargestellte Fenster öffnet sich und man navigiert sich durch die Hierarchie zu den gespeicherten Sitzungen unter HKEY_CURRENT_USER\Software\Simon Tatham\PuTTY\Sessions und öffnet mit der rechten Maustaste für diesen Ast das Kontextmenü, wählt den Menüpunkt "Exportieren" und speichert die ausgewählte Teilstruktur als *.reg-Datei ab. Diese Datei kopiert man dann auf den oder die Rechner, auf denen die Sitzungen hinzugefügt werden sollen und führt die Einträge dieser Datei mit der dortigen Registry über das Kontextmenü der Datei zusammen (rechte Maustaste auf die Datei, Menüpunkt "Zusammenführen" auswählen).

Beim nächsten Start von PuTTY auf dem Rechner sind die neu importierten Sitzungen verfügbar.

Alternative: Benutzung von PuTTY-Tray

Es gibt eine erweiterte Version von PuTTY namens PuTTY-Tray, die ihre Konfiguration nicht nur in der Registry speichert, sondern bevorzugt in einer Textdatei. Man kann vom normalen PuTTY problemlos wechseln, d. h. alle bestehenden Sitzungen werden aus der Registry in die Textdatei übernommen.

Zusätzlich zu der Textdatei werden die offenen PuTTY-Fenster im Systembereich der Kontrollleiste abgelegt, was Platz in der Taskleiste spart. Leider funktioniert genau diese Funktion nicht besonders stabil, so ist es mir schon öfter passiert, dass Fenster einfach verschwunden sind. :?

Die textbasierte Konfiguration hat einen großen Vorteil: Sie kann in vernetzten Gruppen als gemeinsame Basis genommen werden. Hierfür legt man die Programmdatei putty.exe in einem Netzlaufwerk ab. Darin legt PuTTY-Tray automatisch die Verzeichnisse sessions und sshhostkeys für seine Konfiguration an.

Jetzt kann eine Gruppe von Administratoren auf eine gemeinsame PuTTY-Konfiguration, deren eingerichtete Sitzungen und darin vorhandene Port-Weiterleitungen zugreifen, diese global ändern und neue Systeme einpflegen.

« nach oben

Public Key Authentifizierung

Übersicht

Normalerweise meldet man sich via SSH an einem entfernten System mit Benutzername und Passwort an. Wenn man sich häufig erneut an einem oder mehreren Systemen anmeldet oder Dateien übertragen will, kann diese Abfrage schon mal lästig werden. Außerdem kann sich diese Art der Authentifizierung als Schwachstelle erweisen, sollte das entfernte Zielsystem gehackt worden sein, denn dann könnte man auf diese Weise in Besitz des (hoffentlich nur hier verwendeten) Passworts kommen.

Abhilfe schafft die Authentifizierung über Public Keys. Man erzeugt sich ein zusammengehörendes Schlüsselpaar legt den öffentlichen Teil, dem sogenannten Public Key (engl.: Öffentlicher Schlüssel), auf dem entfernten System ab. Mit dessen Hilfe kann nun der entfernte SSH-Server eine Nachricht auf ihren Ursprung prüfen, die mit dem zugehörigen Private Key unterzeichnet worden ist.

Ich will hier nicht weiter auf die Details der Kryptographie eingehen, jedenfalls ist darüber eine passwortlose Authentifizierung möglich bzw. Der Schlüssel ist dann das Passwort. Zum Schutz des Private Key wird man bei der Generierung des Schlüsselpaares nach einem Passwort gefragt, das zum Schutz des Schlüssels dient. Lässt man dieses weg, wird man gar nicht mehr nach einem Passwort gefragt. Das hat aber den Nachteil, dass jeder, der in Besitz des Private Key kommt, zu allen Rechnern Zugang erlangt, auf denen der Public Key bekannt gemacht worden ist.

Da man mit Passwort nichts an Bequemlichkeit gewonnen hätte, übergibt man das Passwort an den sogenannten SSH-Agenten, ein Programm, dass das Passwort des Schlüssels abfragt und dann für alle weiteren Anfragen von SSH-Programmen bereithält. So muss das Passwort für einen Schlüssel nur einmalig eingegeben werden und man erhält einen guten Kompromiss zwischen Bequemlichkeit (entfallende Passworteingabe) und Sicherheit (Authentifizierung mit Public Key).

Im Folgenden werden die einzelnen Schritte beschrieben, nach denen man sich eine Public Key Authentifizierung mit den Programmen einrichten kann, die PuTTY von sich aus mitbringt.

Ein neues Schlüsselpaar erzeugen
Screenshot des Programmes keygen von PuTTY

Um sich ein neues Schlüsselpaar zu erzeugen, stellt PuTTY das Programm PuTTYgen.exe bereit, dass über die Programmgruppe "PuTTY" des Startmenüs zu erreichen ist. Beim Start öffnet sich das hier rechts abgebildete Fenster.

Es gibt zwei verschiedene Versionen des SSH-Protokolls. SSH-v1 unterstützt nur die Verwendung von RSA-Schlüsseln, während bei der neueren SSH-v2 auch DSA-Schlüssel unterstützt werden. Zusätzlich zum Typ kann man hier auch noch die Schlüssellänge in einem Textfeld angeben, das mit dem Wert "1024" vorbelegt ist. Als notorischer Paranoiker dreht man natürlich diesen Wert erstmal auf 2048 hoch. ;-)

Laut dem PuTTY-Autor Simon Tatham ist außerdem von Verwendung von DSA-Schlüsseln abzusehen, was er hier in der Dokumentation (englisch) genauer erläutert. Er empfiehlt dabei, DSA-Schlüssel jeweils nur für einen Server zu verwenden.

Durch Drücken auf den Knopf "Generate" wird die Schlüsselgenerierung gestartet. Das Fenster hat einen größeren leeren Bereich, in dem man durch Bewegen der Maus das Programm beim Generieren von Zufallswerten unterstützen kann (und soll!). Also die Maus auf dem Bereich einfach mal so richtig durchrütteln, das braucht die sowieso ab und zu. }:-)

Screenshot des Programmes keygen von PuTTY

Nach der Schüttelpartie bekommt man noch den Konfigurationsdialog (siehe Abbildung links) zu Gesicht, in dem man dem Schlüssel mit einem Passwort versehen sollte. Den Privaten Schlüssel muss man jetzt noch für die spätere Verwendung abspeichern (Knopf "Save Private Key", Dateiendung *.PPK). Den Public Key benötigt man nicht in einer Datei, aber den Inhalt des im oberen Fensterbereich angezeigten Textfelds sollte man kopieren (Überschrift "Public key for pasting into OpenSSH authorized_keys file").

Bekanntmachen des Public Keys auf dem entfernten Server

In einem anderen PuTTY-Fenster meldet man sich nun mit Benutzername und Passwort am entfernten System an, an dem man sich in Zukunft mit seinem frisch generierten Public Key authentifizieren möchte. In dem Heimverzeichnis unterhalb des sich darin befindenden Verzeichnisses .ssh liegt sich die Datei authorized_keys (bei älteren SSH-versionen evtl. auch die Datei authorized_keys2), in die man eine neue Zeile mit dem oben kopierten Public Key anhängt. Ab sofort kann man sich an diesem System mit der Public Key Authentifizierung anmelden.

Benutzen des neuen Schlüssels für die Authentifizierung
Screenshot der Sessionverwaltung von PuTTY

Will man den soeben generierten Schlüssel nun für die Authentifizierung an einem entfernten System verwenden, muss man das in der Session entsprechend konfigurieren. Dafür navigiert man in den Optionen für die Sitzung durch die Äste "Connection", "SSH" und "Auth" und trägt in dem Textfeld "Private key file for authentication" den Pfad zur Schlüsseldatei (*.PPK) ein.

Will man diese Datei für alle neu angelegten Sitzungen benutzen, trägt man den Wert in den "Default Settings" ein und speichert diese. Bereits angelegte Sitzungsprofile werden dadurch nicht beeinflusst.

Benutzung des SSH-Agenten Pageant
Screenshot des Programmes pageant von PuTTY

Um die Benutzeranmeldung zu automatisieren, benötigt man jetzt noch den Pageant, den man auch wieder in der PuTTY-Programmgruppe des Startmenüs finden kann. Der Agent bindet sich im Systembereich der Kontrollleiste neben der Uhr mit einem neuen Symbol ein, dass einen Monitor zeigt, der einen klischeehaften Agentenhut trägt. :lol:

Diesem Agenten fügt man nun über sein Kontextmenü seine Private Keys, also die PPK-Dateien, hinzu. Ist ein Schlüssel durch ein Passwort geschützt, wird man einmalig danach gefragt.

Screenshot einer PuTTY Sitzung

Jetzt kann man seine erste Public Key Authentifizierung am entfernten System vornehmen. An der Meldung "Authenticating with public key "{dateiname}" from agent" sieht man, dass alles geklappt hat. außerdem sollte man nicht mehr nach einem Passwort gefragt worden sein.

Grenzen des Agenten

Jetzt könnte man auf die Idee kommen, die regelmäßige Übertragung von Dateien (z. B. Logdateien) mit PuTTY zu automatisieren, was durch den Agenten und der Verwendung von Public Keys ja funktionieren könnte. Der Haken an dieser Idee ist aber, dass der Agent als normale Anwendung läuft und somit einen am Windows angemeldeten Benutzer voraussetzt. Die Möglichkeit, pageant als Dienst zu starten, schlägt fehl. Es ist auch nicht geplant, den Agenten als Dienst zu implementieren, wie in der PuTTY wishlist (pageant-as-service) (englisch) nachzulesen ist.

Somit muss man sich dafür etwas anderes überlegen, z.üB. die Installation eines SSH-Servers auf dem Windowsrechner.

« nach oben

Port Forwarding - Mit PuTTY Dienste durch SSH tunneln

Was Port Forwarding ist und welche Typen es gibt, habe ich bereits an anderer Stelle beschrieben, deshalb gehe ich hier nur noch auf die Spezialitäten der Konfiguration mit PuTTY ein.

Screenshot des Programmes PuTTY, Konfiguration eines Tunnels

Für das Port Forwarding, also das Tunneln anderer Anwendungen durch die SSH-Verbindung, muss man zusätzlich in den Verbindungseinstellungen unter "Connection", "SSH", "Tunnels" die entsprechenden Tunnel definieren.

Zu einem solchen Tunnel gehören immer die Einstellungen "Source Port" und "Destination" und ob es sich um ein "Local" oder "Remote" Port-Forwarding handelt. Der gewählte Typ wird dann durch ein vorangestelltes L oder R symbolisiert.

Hinweis: Seit der PuTTY Version 0.60 ist es möglich, Tunnel in bereits aufgebauten SSH-Verbindungen nachträglich zu definieren, ohne dass man sich am entfernten System neu anmelden muss.

Hinweis: Falls sich das PuTTY-Fenster trotz richtigem Benutzername und Passwort sofort wieder schließt liegt das eventuell daran, dass dem Benutzerkonto auf dem entfernten UNIX-System die (ungültige) Shell /bin/false zugewiesen ist.
Man kann dennoch Ports tunneln, sofern der SSH-Server auf der Gegenseite das zulässt. Hierfür muss man in den Einstellungen unter "Connection" > "SSH" > Häkchen "Do not start a shell or command at all" setzen.

Weitergabe des Tunnels an das lokale Netzwerk

Auch wenn die Bezeichnung des Feldes "Source Port" es nicht vermuten lässt, kann man doch in dieses Feld auch Einträge der Form {IP-Adresse}:{Port} eintragen. Hintergrund ist, dass man auch unter Windows inzwischen einer Netzwerkkarte mehrere IP-Adressen zuweisen kann. Durch die Angabe der IP-Adresse kann man den beim Port Forwarding lokal geöffneten Dienst somit auf ein bestimmtes Netzwerk festlegen, aus dem der Dienst erreichbar sein soll. Normalerweise lauscht der Dienst auf der Adresse 127.0.0.1 (localhost), d. h. man kann ihn nur von dem lokalen Rechner aus ansprechen. Falls man den getunnelten Dienst auch für andere Rechner im lokalen Netz bereitstellen will, muss man zusätzlich das Häkchen "Local ports accept connections from other hosts" aktivieren.

Damit ist dann auch der folgende Aufbau einer entfernten Verbindung aus dem lokalen Netz über den PuTTY-Rechner als Gateway denkbar:

Local Port Forwarding auf einen entfernten Rechner über PuTTY-Zwischenhop

In dem oben dargestellten Beispiel holt sich ein Rechner aus dem lokalen Netzwerk eine VNC-Sitzung von einem Rechner in einem entfernten Netzwerk auf den lokalen Monitor. Für den Rechner im lokalen Netz sieht es so aus, als würde er sich mit dem Rechner verbinden, auf den die PuTTY-Sitzung läuft. Unter Umständen kann es sich bei dem SSH-Server und VNC-Server um dieselbe Maschine handeln.

Schon verrückt, was man mit SSH so alles machen kann. :-)

« nach oben

X-Forwarding - graphische Linux-Programme auf den Windowsdesktop holen

Bis zu diesem Zeitpunkt ist PuTTY rein als SSH-Zugang genutzt worden, waren dabei also auf die Kommandozeile beschränkt. Aber PuTTY kann auch die Graphische Oberfläche via SSH tunneln und somit können X-Windows Anwendungen dargestellt werden. Dafür benötigt man allerdings noch ein Programm, was das X-Protokoll versteht und entsprechend umsetzen kann, kurz man benötigt einen X-Server, den PuTTY nicht mitbringt.

Screenshot des Hauptfensters von PuTTY, X11 Forwarding

Um X-Forwarding einzuschalten, muss das in dem rechts dargestellten Fenster das Häkchen "Enable X11 forwarding" unter "Connection", "SSH", "X11" in den Verbindungseinstellungen aktivieren. Jetzt muss noch ein X-Server Programm auf dem Windowsrechner installiert werden, damit die getunnelten Anwendungen dargestellt werden können. Es gibt z. B. einen X-Server vom Cygwin Projekt, allerdings ist das rein für diesen Zweck oversized, da dabei viele zusätzlichen Programmpakete installiert würden.

Ein anderes Projekt, das nur einen X-Server liefert, ohne dabei eine halbe UNIX-Umgebung zu installieren und ohne Abhängigkeiten zu den Cygwin-Bibliotheken zu haben, ist das Programm XMing (Sourceforge Projektseite).

Screenshot: PuTTY und XMing in Aktion

In der linken Abbildung ist ein gewöhnlicher Windowsdesktop, in dem im Systemabschnitt der Kontrollleiste neben der Uhr der X-Server XMing zu sehen ist. Außerdem wurde mit PuTTY und X-Forwarding eine Verbindung zum Linuxrechner selenium aufgebaut. Sämtliche dargestellten X11-Anwendungen werden auf diesem entfernten Linuxrechner ausgeführt. Somit kann man durch die Kombination PuTTY und X-Server entfernte graphische Programme ausführen und z. B. wie hier dargestellt mit FW-Builder seine Linuxfirewall konfigurieren.

Ist also ein kleines Häkchen für eine sehr effektvolles Ergebnis. :-)

XLaunch - Starten von X-Programmen mit Komfort

Für jedes Programm die oben stehenden Schritte durchzuführen, ist zu umständlich.

Schöner wäre das Starten eines Programms über ein Symbol auf dem Desktop oder im Startmenü. Hierfür bringt XMing das Programm XLaunch mit, das die Einstellungen für eine Anwendung in einer Konfigurationsdatei speichert, die beim Aufruf mit einer Kommandozeilenoption mitgegeben werden kann.

Screenshot: XLaunch im Startmenü

Will man nun eine neue X-Anwendung bereitstellen, kopiert man zuerst die Verknüpfung zu XLaunch aus dem Startmenü, wie in dem rechts stehenden Screenshot abgebildet ist. Diese legt man in einem lokal liegenenden Ordner ab, in diesem Beispiel ist das im Verzeichnis C:\Shared\etc.

Screenshot: XLaunch Display Settings

Im nächsten Schritt muss man die Konfigurationsdatei für die neue Anwendung generieren. Hierfür startet man das Programm XLaunch und klickt sich durch die Dialogfenster.

Im ersten wird man nach der Art der Fensterdarstellung gefragt, die man auf dem Standardwert "Multiple Windows" stehen lässt, wenn es sich um eine normale Anwendung handelt und nicht etwa um ein Desktop Environment wie KDE.

Screenshot: XLaunch Session Type

Der nächste Dialog fragt nach dem zu verwendeten Sitzungstyp (engl.: Session Type). hier möchte man natürlich eine Anwendung starten und nicht nur den X-Server XMing, wie wir es bereits oben getan haben.

Kommen wir zum interessantesten Teil: Die Angaben zu der zu entfernten Anwendung.

Screenshot: XLaunch Start Program

Hier geben wir das auf dem entfernten Rechner zu startende Programm (hier: kmail) an, wählen das Programm plink.exe von PuTTY für das Verbinden zum entfernten System (hier: selenium) aus und geben den Anmeldenamen (hier: kai) mit.

Das Passwort geben wir erst beim Eröffnen der Verbindung ein, da es sonst in der Konfigurationsdatei unverschlüsselt gespeichert würde.

Bei langsamen Internetverbindungen empfiehlt es sich außerdem, das Häkchen bei "With compression" zu setzen.

In dem folgenden Fenster kann man noch zusätzliche Parameter setzen. Abgesehen von der angehakten Zwischenablage (engl.: clipboard) sind diese Einstellungen nicht weiter von Belang.

Screenshot: XLaunch Session Type

Abschließend kann man durch Drücken auf "Save Configuration" die Einstellungen in einer xlaunch-Datei speichern. Als Speicherort wurde hier auch wieder C:\Shared\etc gewählt.

Der Inhalt dieses Verzeichnis beinhaltet nun die kopierte Verknüpfung zu XLaunch und die Konfigurationsdatei für das Starten von KMail.

Screenshot: XLaunch Start Program

Die Programmverknüpfung zu XLaunch editieren wir nun, so dass beim Starten die Konfigurationsdatei für KMail geladen und ausgeführt wird. Hierfür wird im Eigenschaftendialog der Verknüpfung im Reiter "Verknüpfung" das Eingabefeld "Ziel" wie in dem links stehenden Screenshot angepasst.

Man fügt hinter den Pfad zum Programm die Option "run" mit dem Pfad zu Konfigurationsdatei hinzu.

Der neue Eintrag lautet nun: C:\Programme\XMing\XLaunch.exe -run C:\Shared\etc\kmail.xlaunch

Bei dieser Gelegenheit könnte man die Verknüpfung auch gleich in "kmail" umbenennen.

Kurze Bemerkung am Rande...

Ich verstehe die Leute nicht, die sich immer noch mit dem klassischen Startmenü arbeiten wollen, obwohl das doch eine der Neuerungen seit Windows XP ist, die wirklich den Benutzerkomfort erhöht hat. Natürlich muss man das neue Startmenü entsprechend anpassen, da die Default-Einstellungen wie gewohnt grottig sind, aber dann will man es nicht mehr missen. ;-)

Screenshot: XLaunch Session Type

Eine Neurung im Startmenü ist das sogenannte "An Startmenü anheften" im Kontextmenü lokaler Programme und Dateien. Für Objekte, die auf Netzlaufwerken liegen, wird diese Option nicht angezeigt. Auf diese Art angeheftete Programme erscheinen auf oberster Ebene direkt im Startmenü. Das klassische Startmenü ist nahc wie vor über den Punkt "alle Programme" erreichbar.

Wir heften also die neue Anwendung an das Startmenü an und können das Programm kmail nun direkt über die neue Verknüpfung starten.

Hiermit haben wir nun eine komfortable Möglichkeit gefunden, wie man X-Programme auf entfernten UNIX-Systemen starten kann, ohne ständig den weiter oben beschriebenen Ablauf durchführen zu müssen. :-)

« nach oben

Kommandozeilenprogramme für die Stapelverarbeitung

Zurück aus der graphischen Welt zurück zur Kommandozeile und damit auch zur Stapelverarbeitung bzw. Automatisierung. Wie oben bei der Public Key Authentifizierung bereits erwähnt, kann der PuTTY SSH-Agent namens Pageant nur laufen, wenn jemand aktiv am Windowssystem angemeldet ist. Das ist natürlich ein dicker Hemmschuh für Automatismen, da sich nach einem Reboot des Systems erst wieder der Benutzer anmelden müsste, damit dieser Automatismus wieder funktionieren kann.

Dennoch sollen hier noch kurz die Möglichkeiten der Programme für die Kommandozeile vorgestellt werden, mit denen man auch ohne Automation Dateien zwischen Windows und Linux austauschen kann.

SCP - Secure CoPy
Screenshot: cmd.exe mit pscp.exe (usage) und Kopiervorgang

Das erste Programm nennt sich pscp.exe und dient zur Übertragung einzelner Dateien, die man als Liste dem Kommando übergibt. Abhängig davon, ob man sich mit Public Keys authentifziert, muss hier für jeden Kopiervorgang das Passwort eingegeben werden. Alleine für die Nutzung von SCP lohnt sich die Verwendung von Public Keys und Pageant.

Die Benutzung ist an sich einfach und ähnlich dem Pendant unter Linux. Für das Kopieren einer lokalen Datei auf das entfernte System schreibt man:

C:\> pscp lokale_datei.txt user1@entfernter_rechner:pfad/zieldatei

Wichtig hierbei ist, dass in dem obigen Beispiel die Position der Zieldatei relativ zum Heimverzeichnis des Benutzers user1 angegeben ist. Will man direkt in das Heimverzeichnis kopieren, reicht also folgendes:

C:\> pscp lokale_datei.txt user1@entfernter_rechner:

Der Doppelpunkt ist wichtig und es könnte auch noch ein Punkt folgen, was den gleichen Effekt hätte. Absolute Pfade können mit führendem / angegeben werden. Das ist in dem nächsten Beispiel dargestellt, in dem eine entfernte Datei auf den lokalen Windowsrechner geholt wird:

C:\> pscp user1@entfernter_rechner:/pfad/zur/datei zielpfad

In beiden Beispielen ist darauf zu achten, dass sich das PuTTY-Programmverzeichnis im Pfad (Variable "Path") befindet, was man mit einem echo %path% im cmd-Fenster herausfinden kann. Die Variable setzt man unter Windows im Eigenschaftenfenster des Systems (rechte Maustaste auf dem Arbeitsplatz, Menüpunkt "Eigenschaften", Reiter "Erweitert", Knopf "Umgebungsvariablen"). Dann den Pfad für die Variable "Path" entsprechend erweitern, Pfade werden hier mit Semikolon voneinander getrennt.

SFTP - Secure FTP

Das mitgelieferte Programm psftp lässt sich bedienen, wie man es von einem herkömmlichen FTP-Programm an der Kommandozeile gewohnt ist. Mit help bekommt man eine Übersicht der unterstützen Kommandos und diese können auch in einer Textdatei stehen, die dann als Stapelverarbeitungsdatei der Reihe nach abgearbeitet werden.

Der erste Aufruf erfolgt mit dem Namen oder der IP-Adresse des entfernten Rechners. Man kann aber auch an der interaktiven Eingabeaufforderung mit open servername eine Verbindung zu einem entfernten Rechner herstellen.

Daten an das entfernte System werden übertragen mit put dateiname, Dateien auf das lokale System holen funktioniert mit get dateiname. Will mehrere Dateien gleichzeitig bearbeiten, ist den beiden Kommandos ein m voranzustellen.

Wer Dateiübertragungen nicht gerne über die Kommandozeile erledigt, dem sei hier noch WinSCP ans Herz gelegt, dass eine Graphische Oberfläche für SCP und SFTP zur Verfügung stellt.

« nach oben

« zurück (Gesammelte Anleitungen)

NX - Effizienter Remote Desktop für Windows und Linux

Screenshot: NX-Fenster mit KDE

Die Netzwerkprotokolle RDP und VNC ermöglichen es, auf eine entfernte Graphische Oberfläche zuzugreifen, als würde man lokal daran arbeiten. Im ersten Fall an einem Windows-Desktop, bei VNC entweder an einem Windows- oder Linuxrechner, es muss nur ein VNC-Server installiert sein.

Ein empfindlicher Nachteil von VNC ist, dass es sehr viele Daten überträgt, da es die neu zu zeichnenden Bildinformationen direkt schickt (sprich: Bildausschnitte). Bei RDP wurde das berücksichtigt und somit ist zumindest auf reinen Windowsrechnern die Performance doch sehr hoch, da teile des Zeichens auf den Client verlagert werden. Es werden also Informationen übertragen, was der Client zu zeichnen hat, nicht die Bilder selbst.

NX stellt nun keine neue Implementierung eines Netzwerkprotokolls zur Übertragung dar, zumindest sehen die angesprochenen Systeme das nicht so. Es handelt sich vielmehr um eine Middleware, die einen NX-Server bereit stellt, der via RDP, VNC und X-Protokoll mit den Anwendungsservern spricht und die Daten dann mit einem eigenen, komprimierbaren NX-Protokoll an den NX-Client weiterreicht, der dann die Darstellung übernimmt. Das entlastet den Anwendungsserver, aber stellt auch höhere Anforderungen an den Rechner, auf dem der NX-Client läuft.

Ein Beispiel: Ich benutze zwei Rechner hier, einen alten Pentium II Rechner mit 600MHz, der als Anwendungsserver dient und ein Notebook mit 1700MHz Pentium M als NX-Client. Wenn ich nun eine NX-Sitzung mit KDE auf dem alten Rechner starte ist das schneller, als wenn ich dort lokal eine KDE-Sitzung aufmache. eek

Alles, was man auf dem Server benötigt, ist ein SSH-Server und den NX-Server, dem man in der Free-Variante auf der Webseite von NoMachine.com herunterladen kann. Es stehen RPM- und DEB-Pakete, sowie ein Tarball für die generische Installation zur Verfügung. Die freie Version ist beschränkt auf zwei Benutzer und eine gleichzeitige Sitzung zum System.

Man kann auch eine Sitzung aussetzen und dann später fortführen, was vor allem in virtualisierten Umgebungen von Vorteil sein kann.

Viel Spaß damit!

« nach oben

« zurück (Gesammelte Anleitungen)

Referenzen

Hier noch einmal ein paar gesammelte Links zu den oben angesprochenen Themen:

Vielleicht versteht der eine oder andere nach der Lektüre dieser Möglichkeiten, warum man sich als Benutzer von UNIX-Systemen an einem Windowsdesktop schon mal eingezwängt fühlen kann. ;-)

« nach oben

« zurück (Gesammelte Anleitungen)