OpenSSHServer

From Dietrich Blog (Strato)
Revision as of 23:22, 23 June 2007 by Dkracht (talk | contribs) (New page: = OpenSSH-Server = Um einen gesicherten Zugriff von unterwegs auf meine Windows-Computer zu haben, hatte ich schon früher OpenSSH als Win32 installiert. Diese Installation war se...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

OpenSSH-Server

Um einen gesicherten Zugriff von unterwegs auf meine Windows-Computer zu haben, hatte ich schon früher OpenSSH 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 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 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-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
  • 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
  • OpenSSH benutzt die im Registry bereits durch die 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 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