OpenSSH auf Windows Server wird in einer PowerShell-Konsole mit Administratorrechten aktiviert. Add-WindowsCapability installiert OpenSSH.Server, Start-Service sshd startet den Dienst und Set-Service stellt ihn auf automatischen Start. Für Schlüssel-Logins vom Handy ist ein Detail entscheidend: Administratorkonten lesen C:\ProgramData\ssh\administrators_authorized_keys, nicht die authorized_keys ihres Profils. Der Standardport ist TCP 22.

OpenSSH.Server auf Windows Server mit Add-WindowsCapability installieren

Der OpenSSH-Server für Windows wird als optionale Systemfunktion ausgeliefert. Zwei Cmdlets, ausgeführt in einer PowerShell-Konsole als Administrator, prüfen seinen Status und installieren ihn:

# Check client and server state
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Install the server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Der erste Befehl meldet State : Installed oder State : NotPresent für OpenSSH.Client und OpenSSH.Server. Wird der Server bereits als installiert angezeigt, springen Sie zum nächsten Schritt. Die Installation legt den Dienst sshd und den Ordner C:\ProgramData\ssh an. Dieser Ordner enthält die Host-Schlüssel und die sshd_config.

Den Windows-Dienst sshd starten und Port 22 öffnen

Nach der Installation ist sshd zwar vorhanden, aber gestoppt und auf manuellen Start eingestellt. Diese Befehle starten den Dienst, stellen ihn auf automatisch und prüfen die Firewall:

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Get-Service sshd

# Check for an inbound SSH rule
Get-NetFirewallRule -Name *ssh*

# If missing, create one for TCP 22
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

C:\ProgramData\ssh\sshd_config akzeptiert dieselben Direktiven wie unter Unix, etwa PasswordAuthentication, Port oder AllowGroups. Die vollständige Referenz ist die Manpage zu sshd_config. Führen Sie nach jeder Änderung Restart-Service sshd aus. Hat der Server keine öffentliche IP oder möchten Sie Port 22 lieber nicht freigeben, erreichen Sie ihn über ein privates Mesh-Netzwerk ohne offene Ports wie Prialo oder über Tailscale, ohne den Router anfassen zu müssen.

administrators_authorized_keys: Warum Ihr SSH-Schlüssel auf Windows Server scheitert

Für Mitglieder der lokalen Administratorengruppe ignoriert sshd die Datei %USERPROFILE%\.ssh\authorized_keys. Die Standard-sshd_config endet mit diesem Block:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Der öffentliche Schlüssel des Handys gehört deshalb in diese gemeinsame Datei. Außerdem darf nur für Administratoren und SYSTEM Zugriff auf die Datei bestehen; erbt sie Berechtigungen für andere Benutzer, verweigert sshd sie. Das ist das ACL-Pendant zu 700 auf ~/.ssh und 600 auf authorized_keys unter Linux. Mit SIDs vermeiden Sie Probleme mit lokalisierten Gruppennamen:

$key = 'ssh-ed25519 AAAA...your-key... phone'
Add-Content -Path 'C:\ProgramData\ssh\administrators_authorized_keys' -Value $key

# Remove inheritance, keep only Administrators (S-1-5-32-544) and SYSTEM (S-1-5-18)
icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant '*S-1-5-32-544:F' /grant '*S-1-5-18:F'

Verwenden Sie einen Ed25519-Schlüssel, den OpenSSH seit Version 6.5 unterstützt. Ab OpenSSH 8.8 ist die SHA-1-Signatur ssh-rsa standardmäßig deaktiviert, sodass alte RSA-Schlüssel zu verwirrenden Fehlern führen. In termi1 wird der Schlüssel direkt auf dem Handy erzeugt und im sicheren Schlüsselspeicher des Systems abgelegt. Sie kopieren nur die öffentliche Hälfte; der private Schlüssel verlässt das Gerät nie.

PowerShell als Standard-Shell für sshd auf Windows Server

Ohne weitere Konfiguration öffnet eine SSH-Sitzung unter Windows cmd.exe. Der Registrierungswert DefaultShell unter HKLM:\SOFTWARE\OpenSSH ändert das:

New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' -Name DefaultShell -Value 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -PropertyType String -Force
Restart-Service sshd

Ist PowerShell 7 installiert, lassen Sie den Wert stattdessen auf C:\Program Files\PowerShell\7\pwsh.exe zeigen. Mit PowerShell als Login-Shell können Sie Get-Service, Get-EventLog oder Restart-Service vom Handy aus ausführen, ohne vorher powershell eingeben zu müssen.

Per SSH mit Windows Server verbinden: Handy im Vergleich zum Desktop

Die Verbindungsdaten sind in jedem Client gleich: Benutzer, Server-IP oder Hostname, Port 22 und der Ed25519-Schlüssel. Unterschiedlich ist die Arbeitsumgebung:

Was verglichen wirdHandy (iOS/Android)Desktop
Tasten, die PowerShell brauchttermi1-Tastatur mit Tab, Ctrl, Esc und PfeiltastenVollständige physische Tastatur
Wo der Schlüssel liegtSicherer Schlüsselspeicher des Systems; der private Schlüssel bleibt auf dem HandyDatei in ~/.ssh mit Berechtigungen 600
DateiübertragungIntegriertes SFTP, ohne die Sitzung zu verlassensftp oder scp (seit OpenSSH 9.0 standardmäßig per SFTP)
NetzwechselNeu per SSH verbinden; Windows fehlt mosh-serverNeu per SSH verbinden
Keine öffentliche IPPrialo oder Tailscale auf dem HandyPrialo oder Tailscale auf dem Computer

PowerShell setzt stark auf Tab, um Cmdlets und Parameter zu vervollständigen, daher spart die Tastatur im SSH-Terminal termi1 viel Tipparbeit. Die KI verwandelt einen Satz wie „starte den Druckspooler neu“ in den passenden Befehl und schreibt ihn in die Eingabezeile, ohne Enter zu drücken. Auf einem als Produktion markierten Server hält Production Guard jedes Stop-Service oder jeden Löschvorgang zurück, bevor er die Eingabezeile erreicht.

4 Fehler beim Aktivieren von OpenSSH auf Windows Server

  1. Den Schlüssel ins Profil des Administrators legen. Für die Administratorengruppe hat administrators_authorized_keys Vorrang.
  2. Die Vererbung von Berechtigungen aktiv lassen. Können andere Benutzer auf die Datei zugreifen, ignoriert sshd sie stillschweigend.
  3. Den automatischen Start vergessen. Ohne Set-Service -StartupType 'Automatic' funktioniert SSH nach einem Neustart nicht mehr.
  4. Mosh oder tmux erwarten. Beide sind Werkzeuge auf Unix-Seite; eine Windows-Sitzung ist reines SSH.

Häufig gestellte Fragen

Wie installiere ich OpenSSH Server auf Windows Server?

OpenSSH Server wird auf Windows Server in einer PowerShell mit Administratorrechten über Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 installiert. Starten Sie anschließend den Dienst mit Start-Service sshd, stellen Sie ihn mit Set-Service auf automatisch und prüfen Sie, ob eine Firewallregel eingehenden Verkehr auf TCP 22 erlaubt.

Wohin gehört der öffentliche Schlüssel eines Administrators in OpenSSH für Windows?

Der öffentliche Schlüssel eines Administrators gehört in OpenSSH für Windows in C:\ProgramData\ssh\administrators_authorized_keys, nicht ins Benutzerprofil. Nur Administratoren und SYSTEM sollten Zugriff auf die Datei haben. Legen Sie das mit icacls fest und entfernen Sie die Vererbung; bleiben andere Berechtigungen bestehen, lehnt sshd den Schlüssel ab.

Kann ich mich per Mosh mit einem Windows Server verbinden?

Mosh benötigt einen mosh-server, der auf dem entfernten Rechner läuft und über eine erste SSH-Verbindung gestartet wird. OpenSSH für Windows enthält ihn nicht. Vom Handy aus ist eine Sitzung mit Windows Server daher normales SSH, und ein Wechsel von WLAN zu mobilen Daten erfordert eine neue Verbindung.

Wie lege ich PowerShell als SSH-Shell unter Windows fest?

PowerShell wird unter Windows zur SSH-Shell, wenn Sie unter HKLM:\SOFTWARE\OpenSSH den Wert DefaultShell anlegen, der auf powershell.exe oder pwsh.exe zeigt. Erstellen Sie den Wert mit New-ItemProperty und starten Sie den Dienst dann mit Restart-Service sshd neu, damit neue Sitzungen ihn übernehmen.