OpenSSH unter Windows 10 ab 1803 und Server 2019 installieren

    OpenSSH als optionales Feature in Windows Server 2019In der Version 2019 ent­hält Windows Server erstmals OpenSSH als optio­nales Feature, was die Instal­lation und Konfi­guration verein­facht. Aller­dings ver­hindern Fehler in einigen Builds des Betriebs­systems ein erfolg­reiches Hinzu­fügen des SSH-Servers, und mit WSUS gibt es die gleichen Pro­bleme wie bei den RSAT.

    Die Portierung von OpenSSH auf Windows erleichtert das Management von heterogenen Umgebungen. So lassen sich Linux-Rechner über SSH von Windows aus remote admini­strieren und dank des neuen OpenSSH-Servers funktioniert nun auch der umgekehrte Weg. Zudem unterstützt PowerShell Core das Remoting über SSH, und zwar auch zwischen den ver­schiedenen OS.

    OpenSSH-Server nicht im Lieferumfang des Betriebs­systems

    Eigentlich würde man erwarten, dass eine System­komponente mit solcher strategischen Bedeutung als Bestandteil des Betriebs­systems ausgeliefert wird und sich wie gewohnt als Feature über den Server Manager oder PowerShell installieren lässt.

    Microsoft hat sich jedoch entschieden, OpenSSH als optionales Feature (auch "Feature on Demand") bereit­zustellen. Dadurch verein­heitlicht sich die Installation zwischen Client- und Server-OS. Die folgende Beschreibung gilt mithin auch für Windows 10 ab Release 1803.

    Installation über die GUI

    Zuständig ist dafür die App Einstellungen, wo man unter Apps dem Link Optionale Features verwalten folgt. Wie man dort an der Liste der installierten Kompo­nenten erkennen kann, ist der SSH-Client standard­mäßig bereits installiert. Den Server hingegen ergänzt man über die Option Features hinzufügen.

    OpenSSH-Server über die App Einstellungen installieren

    In der daraufhin angezeigten Liste wählt man den OpenSSH-Server aus und klickt auf die sich dann öffnende Schaltfläche Installieren. Windows lädt nun die benötigten Dateien über das Internet. Tritt ein Fehler auf, dann erhält man in der Regel von der App Einstellungen keine Nachricht, sondern sie springt einfach wieder zurück zur Liste der Features.

    OpenSSH-Server über PowerShell hinzufügen

    Für mehr Transparenz sorgt dagegen PowerShell, wo man den genauen Namen des benötigten Pakets so ermittelt:

    Get-WindowsCapability -Online | ? name -like *OpenSSH.Server*

    Anschließend übergibt man diesen an Add- WindowsCapability.

    OpenSSH-Server über PowerShell hinzufügen

    Alternativ reicht man den Output gleich über eine Pipe weiter:

    Get-WindowsCapability -Online | ? name -like *OpenSSH.Server* |
    Add-WindowsCapability -Online

    Fehlerhafte Builds

    Hier kann es zumindest aus zwei Gründen zu Problemen kommen. Ist der Build des Systems älter als 17763.194, dann läuft man in den Fehler

    Add-WindowsCapability failed. Error code = 0x800f0950

    Auf frühen Builds von Windows Server 2019 scheitert die Installation von OpenSSH-Server.

    In diesem Fall benötigt man ein aktuelles kumulatives Update, um das Problem zu beheben (es ist hier dokumentiert).

    Probleme mit WSUS

    Eine weitere Hürde ergibt sich, wenn der Server, wie meistens der Fall, über WSUS mit Updates versorgt wird. Microsoft liefert die Features on Demand nämlich an WSUS vorbei aus, so dass man sie nicht über den internen Update-Server bekommt.

    Daher ist es nicht unwahr­scheinlich, dass PowerShell hier folgenden Fehler präsentiert:

    Fehler bei "Add-WindowsCapability". Fehlercode: 0x8024002e

    Fehler bei der Installation von OpenSSH als optionales Feature in WSUS-Umgebungen

    Im Eventlog findet sich dann ein Eintrag mit der ID 1001, der besagt, dass das OpenSSH-Server-Package nicht vorhanden ist.

    Log-Eintrag nach dem Scheitern der OpenSSH-Server-Installation in WSUS-Umgebungen

    Abhilfe schafft wie schon bei den RSAT, dass man Windows über eine Gruppen­richtlinie erlaubt, optionale Features direkt von Microsoft Update zu laden. Sie heißt Einstellungen für die Installation von optionalen Komponenten und die Reparatur von optionalen Komponenten und findet sich unter Computerkonfiguration => Richtlinien => Administrative Vorlagen => System.

    Zugriff für WSUS-Clients auf Windows Update erlauben mit Hilfe einer Gruppenrichtlinie.

    Gleichzeitig muss man darauf achten, dass weder die Einstellung Keine Verbindung mit Windows Update-Internetadressen herstellen noch Zugriff auf alle Windows Update-Funktionen deaktivieren in Kraft ist.

    Letztere hat man möglicher­weise aktiviert, um Benutzer daran zu hindern, Feature-Updates manuell herunterzuladen. Das betrifft in erster Linie Windows 10 und weniger den Server.

    SSH-Server aktivieren

    OpenSSH-Server installiert zwei Dienste, die aber noch nicht laufen und deren Starttyp zudem manuell bzw. deaktiviert ist. Wenn man SSH regelmäßig nutzen möchte, dann wird man die Services automatisch starten.

    Starttyp und Status der SSH-Dienste anzeigen mit PowerShell

    Das kann man zwar über die GUI Dienste konfigurieren, am schnellsten geht es aber über PowerShell:

    Set-Service sshd -StartupType Automatic

    Set-Service ssh-agent -StartupType Automatic

    Um den SSH-Server gleich in Betrieb zu nehmen, startet man zusätzlich die beiden Services von Hand:

    Start-Service sshd

    Start-Service ssh-agent

    Mit dem Befehl

    Get-Service -Name *ssh* | select DisplayName, Status, StartType

    überzeugt man sich, ob die Einstellungen für die zwei Dienste passen und sie erfolgreich gestartet wurden. Nun kann man noch prüfen, ob die Firewall-Regel für eingehende SSH-Verbindungen ordnungs­gemäß aktiviert wurde:

    Get-NetFirewallRule -Name *SSH*

    Firewall-Regel für SSH prüfen

    Verbindung testen

    Wenn auch diese Bedingung erfüllt ist, dann steht einem Test nicht mehr im Weg. Von einem Windows-10-PC oder einem Linux-Rechner verbindet man sich dazu mit dem frisch konfigurierten Server:

    ssh <Name-des-Servers>

    Damit landet man auf der alten Eingabe­auf­forderung, kann aber dort auch PowerShell starten.

    Verbindung zum frisch installierten SSH-Server aufbauen

    Schließlich sollte man überlegen, ob man aus Sicherheits­gründen die Public-Key-Authenti­fizierung nutzen möchte. Diese erhöht auch den Benutzer­komfort, weil man kein Passwort mehr eingeben muss. Diese Anleitung beschreibt, wie man dafür vorgeht.

    3 Kommentare

    Bild von Martin Feuerstein
    Martin Feuerstein sagt:
    24. Januar 2019 - 17:53

    Für die "FOD" (Features on Demand) gibt es im VLSC auch ISO-Downloads. Da ist das CAB für OpenSSH-Server-Package enthalten.

    Bild von Wolfgang
    Wolfgang sagt:
    11. Oktober 2019 - 7:53

    In welchem ISO finde ich die Cab-Datei?

    Bild von Martin Feuerstein
    Martin Feuerstein sagt:
    11. Oktober 2019 - 15:29

    Im ersten FOD-ISO.