Computer: OpenSSH-Server (aus Wiki)

OpenSSH-Server (aus Wiki)

Um einen gesicherten Zugriff von unterwegs auf meine Windows-Computer zu haben, hatte ich schon früher Open[[SSH|SSH]] als Win32 installiert. Diese Installation war seit geraumer Zeit defekt und ich hatte micht nun für eine Neu-Installation entschlossen. Recherchen, wie man OpenSSH unter Windows installiert ergaben jetzt aktuell, dass Mark Bradshaw seine Win32-Portierung (http://www.networksimplicity.com/openssh/) nicht mehr empfiehlt.

Stattdessen soll man die Cygwin-Version benutzen, die auch als Windows-Service laufen kann (im Unix-Jargon “Daemon” genannt).

Auf der anderen Seite wurde ganz neu (05.03.2004) von Michael Johnson ein Sourceforge-Projekt “sshwindows” registriert, das ein Binary des OpenSSH ohne das volle Cygwin zur Verfügung stellt. Ich beschreibe daher beide Varianten. Mittelfristig möchte ich Cygwin nämlich wieder rausschmeissen, da es zusammen mit dem NTFS-Filesystem ziemlich nervt.

Installation OpenSSH (ohne Cygwin)

* Definitive Software Library ID: ”’OpenSSHServer”’
* Name: Open SSH
* Version: 3.7.1p1-1 Build 20031015
* Hersteller/Bezugsquelle: http://sourceforge.net/projects/sshwindows
* Systemvoraussetzungen: ”’cygwin1.dll”’ (in D:\Programme\OpenSSH\bin Version 1.5.9 — Fehler wenn MIXED VERSIONS!!!)
* Installations-Ordner: D:\Programme\OpenSSH
* Konfigurationsdateien:
** D:\Programme\OpenSSH\etc\sshd_config (weil \ gemounted ist auf: D:\Programme\OpenSSH)
** D:\Programme\OpenSSH\etc\passwd (weil \ gemounted ist auf: D:\Programme\OpenSSH)
** C:\Dokumente und Einstellungen\<<user>>\Application Data\SSH (für Verbindungsparameter und Host-Keys)
* Das Installationsprogramm ruft auf ssh-keygen, um den Host-Keys zu erzeugen.
* Installiert wird ein Windows-Service ”’OpenSSHd”’ mit dem Display-Namen ”’OpenSSH Server”’. HKLM\SYSTEM\CurrentControlSet\Services\OpenSSHd
* Der Windows-Service benutzt ”’cygrunsrv.exe”’, um sshd.exe als Service zu starten.
* ”’Log-Datei:”’ D:\Programme\OpenSSH\var\log\OpenSSHd.log
* Der Installer legt im Registry folgende Cygwin-Mounts ab (HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2):
** / als d:\Programme\OpenSSH
** /home als c:\Dokumente und Einstellungen
** /usr/bin als d:\Programme\OpenSSH/bin

Da der Befehlszeilen-Interpreter ”’switch.exe”’ ein oberhalb der Laufwerke liegendes “/” nicht versteht, müssen um auf alle Festplattenlaufwerke zugreifen zu können, noch manuell folgende Mounts in die Registry eingetragen werden (analog zu den dort bereits vorhandenen Mounts):
* /c auf c:
* /d auf d:
* /e auf e:
Dann kann der [[SSH-Client|SSH-Client]] SSHSecureShell mit ”>Opteration>Go to Folder…” diese ansprechen.

In die Datei /etc/passwd wird für jeden User das sog. Home-Verzeichnis und die zu verwendende Shell (Befehlszeilen-Interpreter) eingetragen.
Da wir in dieser Variante kein volles Cygwin mit einem schönen Bash installiert haben, müssen wir das von OpenSSH mitgelieferte ”’switch.exe”’ verwenden. Dieses schaltet zwischen ”’cmd.exe”’ (Windows) ind ”’sh.exe”’ ([[Cygwin|Cygwin]] schlicht) “intelligent” hin und her.

=== Mounts im Registry ===
<img src=”http:/Medien/Bilder/OpenSSHMounts.png” alt=”OpenSSHMounts.png” width=”613″ height=”289″ />

== Konfiguration OpenSSH (ohne Cygwin) ==
Anlegen der Dateien ”’group”’ und ”’passwd”’, diese werden mit den Daten der Windows-User-Konten gefüllt.
* cd \Programme\OpenSSH\bin
* mkgroup -l >../etc/group
* mkpasswd -l >../etc/passwd
* Das in der Datei ”’passwd”’ angegebene User-Verzeichnis (z.B. /home/dkracht) muss vorhanden sein.
* Starten und Stoppen des SSH-Servers: net start/stop opensshd

Achtung die Konfigustationsdateien sshd_conf und ssh_config werden in /etc erzeugt. Das ist in dieser Variante gemappt auf D:/programme/OpenSSH/etc. Lösch- und Scheibberechtigung für /etc wird benötigt.

———–
Die ältere Variante mit vorheriger voller [[Cygwin|Cygwin]]-Installation.
== Installation von OpenSSH (mit Cygwin) ==
* Definitive Software Library ID: ”’OpenSSH”’
* Name: OpenSSH Server unter Cygwin
* Version: 3.8p1-1
* Hersteller/Bezugsquelle: Cygwin
* Installationsplattform: Windows 2000 Notebook mit [[Cygwin|Cygwin]]
* Installations-Ordner: D:\Programme\OpenSSH
* Konfiguration:
** D:\Programme\Cygwin\etc\sshd_conf (weil \ gemounted ist auf: D:\Programme\Cygwin)
** D:\Programme\Cygwin\etc\passwd (weil \ gemounted ist auf: D:\Programme\Cygwin)
* Systemvoraussetzungen: [[Cygwin|Cygwin]]
* OpenSSH benutzt die im Registry bereits durch die [[Cygwin|Cygwin]]-Installation eigerichteten Cygwin-Mounts (HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2):
** / als d:\Programme\Cygwin
** /usr/bin als d:\Programme\Cygwin/bin
** /usr/lib als d:\Programme\Cygwin/lib
** /cygwindrive/c als c:
** /cygwindrive/d als d:

In die Datei /etc/passwd wird für jeden User das sog. Home-Verzeichnis und die zu verwendende Shell (Befehlszeilen-Interpreter) eingetragen.
Da wir in dieser Variante auf dem vorhandenen [[Cygwin|Cygwin]] aufbauen, können wir ”’Cygwin Bash”’ verwenden.

== Konfiguration von OpenSSH (mit Cygwin) ==
Quelle: http://tech.erdelynet.com/cygwin-sshd.html
* Cygwin ist bereits installiert (cygcheck -s sagt: cygwin.dll version 1.5.9)
* Mit Cygwin Stepup 2.416 werden folgende Packages nachinstalliert:
** cygrunsrv (aus Cygwin Admin)
** openssh (aus Cydwin Net)
** shutdown (aus Cygwin Admin)
* Unter Cygwin (bash shell) eintippen:
** ssh-host-config -y
** Wenn die Eingabeaufforderung “CYGWIN=…” kommt, eingeben: “tty ntsec”
** Die Installation von OpenSSH ist fertig
* Zum Starten des OpenSSH-Daemon als Windows-Service, unter Cygwin (bash shell) eintippen:
** cygrunsrv -S sshd

Achtung die Konfigurationsdateien ‘sshd_conf’ und ‘ssh_config’ werden in /etc erzeugt. Das ist in dieser Variante gemappt auf D:/programme/Cygwin/etc. Lösch- und Scheibberechtigung für /etc wird benötigt.

== Konflikt ==
Nach der Installation des [[VirenScanners]] [[McAfeeVirusScan]] 7 konnte man sich am OpenSSHServer nicht mehr anmelden. Deshalb McAfee erstetzt durch [[KasperskyAntiVirus]].

— Main.DietrichKracht – 20 Mar 2004
[[Category:DefinitiveSoftwareLibrary]]