Home > Windows > SSH – Client & Server unter Windows

SSH – Client & Server unter Windows

3. Januar 2010

SSH ist ein unverzichtbares Instrument unter Linux/Unix. Ist ein anderer Rechner über TCP/IP erreichbar, lässt er sich damit schnell und bequem über das Netzwerk/Internet steuern. Auch Dateien werden so schnell und gleichzeitig sicher übertragen. Dabei ist egal ob die große böse Netzwerkwolke namens Internet dazwischen liegt. Auch Dateifreigaben müssen nicht erst explizit eingerichtet werden.

Windows bietet hier leider keine brauchbare Lösung. SSH lässt sich aber auch hier nachrüsten, so dass man dadurch unabhängig vom Betriebssystem des Computers, diesen steuern kann. Ein Windows-Server kann dann auch als Ziel für viele SSH-taugliche Anwendungen dienen, wie zB der Backup-Software FileZilla.

Hinweis: Alle hier genannten Programme basieren auf OpenSSH 1 und sind demnach frei verfügbar. Außerdem ist jede vorgestellte Anwendung kostenlos.

Der Server

Eine sehr gute Lösung für einen SSH-Server unter Windows ist die Verwendung von CygWin2. Es handelt sich hierbei um eine Sammlung von freier Linux-Software die für Windows portiert wurde. Anders als MinGW3 ist CygWin nicht nur für Entwickler gedacht, sondern bringt unzählige Programme und Dienste mit. Darunter befinden sich auch Shells wie die BASH4 und Texteditoren wie VIM. Sogar der Apache2-Webserver und X11 lassen sich so unter Windows betreiben. CygWin bietet so wichtige Funktionen von Linux für Windows.

Installation von CygWin & OpenSSH

Die Installation von CygWin ist sehr einfach. Nach dem Download und Start des Installers von der CygWin-Website5, wird man von einem Assistenten durch die Installation geführt.

Hinweis: Es wird empfohlen CygWin in ein Verzeichnis zu installieren, dessen Pfad keine Leerzeichen enthält. Pfadangaben mit Leerzeichen können in seltenen Fällen Probleme bei einigen Programmen verursachen, die CygWin verwenden. (zB.: NetBeans bei der Verwendung des GCC) Das vom Installationsprogramm vorgeschlagene Verzeichnis C:\cygwin bietet auch den Vorteil, dass andere Programm standardmäßig in diesem Verzeichnis nach CygWin suchen.

CygWin Paketauswahl

Das Installationsprogramm von CygWin installiert nicht sämtliche, sondern nur ausgewählte Anwendungen der Sammlung und lädt diese Auswahl aus dem Internet während der Installation nach. Das ist auch notwendig, denn CygWin ist eine sehr umfangreiche Sammlung und die Downloadgröße würde anders unnötig aufgebläht werden.

Als Mirror bzw. Quellserver sollte man einen (oder mehrere) Server in der Nähe auswählen. (Lässt sich anhand der TLD wie „.de“ erkennen.) Die meisten Server sind allerdings schnell genug.

Ist man auf der Seite mit der Paketauswahl angelangt, kann man die zu installierende Software auswählen. Die notwendigsten Komponenten sind bereits ausgewählt, darunter auch die BASH, die später vom SSH-Server bereitgestellt wird.

Neben den benötigten Programmen, sollte man für den SSH-Server das Paket „openssh“ auswählen. Das ebenfalls benötigte Paket „openssl“ wird darauf automatisch mit ausgewählt. Beide Pakete sind in der Kategorie „Net“ zu finden.

Nach der Paketauswahl klickt man auf „Weiter“ um die Installation zu starten. Das kann bei der ersten Installation einige Zeit dauern. Der Installer hebt allerdings alle heruntergeladenen Paketquellen in dem Verzeichnis in dem er sich selbst befindet, für spätere Installationen auf. Auch Updates und nachträgliche Installation von Paketen werden mit diesem Installer durchgeführt. Die heruntergeladenen Dateien können außerdem auf andere Computer oder Netzlaufwerke übertragen werden, so dass ein Download aus dem Internet nur einmal notwendig ist. So lassen sich mehrere Windows-Rechner mit einer CygWin-Installation versehen.

Einrichten des SSH-Servers

Hinweis:Nach der Installation von CygWin kann die BASH über das Startmenü gestartet werden. Normalerweise möchte man aber auch alle Programme, die installiert wurden, direkt unter der Windows Eingabeaufforderung bzw. der Windows PowerShell verwenden.
Deshalb ist es empfehlenswert an die Umgebungsvariable %PATH% das bin-Verzeichnis von CygWin anzuhängen. Zu finden ist es standardmäßig unter C:\cygwin\bin.

Beispiel für eine Konfiguration

Der SSH-Server wird über die Bash mit dem Befehl „ssh-host-config“ als gewöhnlicher Windows-Dienst installiert. Hierbei sollte man natürlich beachten, dass man die BASH auch als Administrator startet, denn ein normaler Benutzer hat nicht genug Rechte um einen Systemdienst zu installieren.

Das Program richtet den Server automatisch ein und stellt dem Benutzer nur folgende Fragen:

Should privilege separation be used? (yes/no)
Hierbei ist gemeint, ob für den einzurichtenden Windows Dienst ein eigenes Benutzerkonto eingerichtet werden soll. In den meisten Fällen kann man diese Frage mit „no“ beantworten. (Das Programm richtet den Dienst dann unter dem Systemkonto ein.) Die Verwendung eines separaten Kontos erhöht allerdings die Sicherheit, da der Dienst selbst dann keinen Zugriff auf das System hat, sollte der Dienst irgendwie gehackt werden. Ist die Existenz des SSH-Servers allerdings keinem großen Benutzerkreis bekannt bzw. ist er nur in einem lokalen privaten Netzwerk zu erreichen ist ein separates Konto normalerweise nicht notwendig.

Should privilege separation be used? (yes/no)
Hierbei ist gemeint, ob für den einzurichtenden Windows Dienst ein eigenes Benutzerkonto eingerichtet werden soll. In den meisten Fällen kann man diese Frage mit „no“ beantworten. (Das Programm richtet den Dienst dann unter dem Systemkonto ein.) Die Verwendung eines separaten Kontos erhöht allerdings die Sicherheit, da der Dienst selbst dann keinen Zugriff auf das System hat, sollte der Dienst irgendwie gehackt werden. Ist die Existenz des SSH-Servers allerdings keinem großen Benutzerkreis bekannt bzw. ist er nur in einem lokalen privaten Netzwerk zu erreichen ist ein separates Konto normalerweise nicht notwendig.

Do you want to install sshd as a service?
Mit dieser Frage möchte das Programm wissen, ob es einen neuen Windows Dienst einrichten soll. Existiert noch keiner, kann man diese Frage mit „yes“ bestätigen, oder andernfalls mit „no“ den Vorgang abbrechen. (Dadurch wird ein vorhandener Windows Dienst nur neu konfiguriert, aber nicht neu installiert.)

Enter the value of CYGWIN for the daemon: []
Hier soll man dem Dienst einen Namen geben. Der Dienst wird anschließend unter der Bezeichnung „CYGWIN Name“ installiert. Empfehlenswert ist hier ein Name wie zB „sshd“ oder „SSHServer“. (Leerzeichen sollten unbedingt vermieden werden.)

Der Dienst wird anschließend installiert und kann dann mit dem Befehl „sc start Dienstname“ (Also zB.: „sc start sshd“) bzw. mit einem Neustart des Systems gestartet werden. Ab jetzt ist der Windows-Rechner auch über jeden SSH-Client erreichbar.

Hinweis:Die BASH präsentiert das Dateisystem auch unter Windows im Linux/Unix-Stil. (Ein zentrales Wurzelverzeichnis) CygWin bindet allerdings sämtliche Windows-Laufwerke unter dem Pfad „/cygdrive“ ein. So hat man einfachen Zugriff auf alle Laufwerke des Rechners.

Der Client

Putty (Hauptmenü)

Für Windows ist Putty6 sicher der beliebteste Client. Er bietet zwar eine etwas eigenwillige Menüführung, an die man sich allerdings schnell gewöhnt. Für Windows gibt es außerdem eine Installer-Version die das Programm und alle dazugehörigen Tools schnell einrichtet.

Zusätzlich gibt es Putty Portable7. Hierbei handelt es sich um eine portable Version von Putty, die auf USB-Sticks aber auch Netzlaufwerken eingesetzt werden kann. Der Funktionsumfang ist identisch mit dem Originalprogramm.

PSCP

Putty bringt aber nicht nur den eigentlichen Client selbst, sondern auch ein Äquivalent zu SCP – also für das sichere Kopieren von Dateien – über SSH mit. Der Befehl trägt hier allerdings den Namen PSCP und basiert ebenfalls auf dem Client von OpenSSH.

Eine weitere Möglichkeit bietet Cygwin selbst. Es bringt neben den Server von OpenSSH auch dessen Client als Konsolenanwendung mit. Liegt das bin-Verzeichnis von Cygwin außerdem zusätzlich im %PATH%-Bereich, lässt sich die Anwendung bequem aus anderen Shells starten, wie zB der Windows Eingabeauffoderung oder der Windows PowerShell.

Auch der SCP-Befehl ist Teil von Cygwin und kann über jede beliebige Konsole oder Batchdatei aufgerufen werden, was einige neue interessante Möglichkeiten bietet. Das ist allerdings auch mit PSCP von Putty möglich.

Eine grafische Oberfläche für SCP unter Windows bietet WinSCP 8. Die Steuerung lässt sofort erkennen, dass es auf Putty basiert, allerdings ist die Software rein für das sichere Kopieren von Dateien gedacht. Es kann nach der Installation über das Startmenü oder Kontexterweiterungen direkt im Windows Explorer (Menü „Senden an“) aufgerufen werden.

Schlusswort

Unter Windows bieten nicht nur die Client-Programme sondern auch der Server eine große Menge an neuen Möglichkeiten. Neben dem verschlüsselten Übertragen von Dateien bietet er eine sehr gute Alternative einen Windows-Rechner fernzusteuern. Dabei reicht es schon aus, wenn der Rechner über LAN/Internet erreichbar ist. Signaturen und verschlüsselte Kanäle sorgen dabei für die notwendige Sicherheit.

Dieser Blogeintrag soll hierbei nur eine Orientierungshilfe bieten. SSH ist in Verbindung mit der BASH und den vielen Programmen von CygWin ein sehr mächtiges Werkzeug, das einmal eingerichtet viel zu bieten hat.

Categories: Windows Tags: , , , , , , ,
  1. 4. Januar 2010, 11:16 | #1

    Nette Beschreibung da muss ich mir doch mal gleich die bash nach Windows holen 😀

Kommentare sind geschlossen