# OpenSSH auf Windows: Terminal-Power für Linux-Admins

TL;DR / Management Summary Lange Zeit war PuTTY der Standard, heute ist OpenSSH ein fester Bestandteil von Windows 10 (ab 1803) und Windows 11. Er läuft nativ in der cmd.exe oder dem Windows Terminal. Für Senior Admins bedeutet das: Echte ssh-agent Unterstützung, nahtlose Integration in VS Code (Remote SSH) und die Nutzung des Windows-User-Profils zur Speicherung von Keys (~/.ssh).


# 1. Einführung & Architektur

SSH ohne Drittanbieter-Tools.

Microsoft hat OpenSSH (basierend auf der BSD-Version) als Windows-Komponente portiert. Er besteht aus zwei Teilen:

  1. OpenSSH Client: Zum Verbinden auf Remote-Server (Default aktiv).
  2. OpenSSH Server: Um Remote-Zugriff AUF den Windows-PC zu erlauben (Optional).

# Der SSH-Agent Dienst

Der ssh-agent Dienst speichert Ihre privaten Schlüssel sicher im RAM, sodass Sie Passphrasen nur einmal pro Sitzung eingeben müssen.


# 2. Einrichtung & Key-Management

Vom Passwort zum Key.

# SSH-Keys generieren (Nativ)

Verwenden Sie den modernen Ed25519 Algorithmus:

ssh-keygen -t ed25519 -C "admin@firma.de"

Die Keys werden unter %UserProfile%\.ssh (z.B. C:\Users\Admin\.ssh) gespeichert.

# Den SSH-Agent aktivieren

Der Dienst ist standardmäßig auf “Manual” gestellt. Wir automatisieren ihn:

Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent

# Key hinzufügen
ssh-add $env:USERPROFILE\.ssh\id_ed25519

# 3. Deep Dive: SSH-Config & Host-Aliase

Nicht mehr tippen als nötig.

Erstellen Sie eine Datei %UserProfile%\.ssh\config, um Verbindungen zu verkürzen:

Host proxmox
    HostName 10.0.0.50
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Host test-lxc
    HostName 10.0.0.101
    ProxyJump proxmox

# 4. Day-2 Operations: Windows Terminal Integration

Schönheit und Funktion.

Nutzen Sie das Windows Terminal, um SSH-Sessions als Tabs zu öffnen.


# 5. Troubleshooting & “War Stories”

Wenn die Shell stumm bleibt.

# Top 3 Fehlerbilder

  1. Symptom: “Permission denied (publickey)”.

    • Ursache: Falsche Rechte auf dem .ssh Ordner in Windows oder der Public Key wurde nicht am Ziel-Server in authorized_keys eingetragen.
    • Lösung: ssh -v <host> nutzen, um zu sehen, welcher Key angeboten wird.
  2. Symptom: ssh-add meldet “Could not open a connection to your authentication agent”.

    • Lösung: Dienst ssh-agent in der services.msc starten.
  3. Symptom: Sonderzeichen (Umlaute) in der SSH-Session werden falsch dargestellt.

    • Lösung: Stellen Sie das Windows Terminal auf UTF-8 und prüfen Sie die Locale auf dem Linux-Zielserver (localectl).

# “War Story”: Die “Visible” Keys

Ein Admin wunderte sich, warum sein privater SSH-Key von einem Security-Scanner auf dem Fileserver gefunden wurde. Die Entdeckung: Er hatte seinen kompletten Windows-Profil-Ordner (%UserProfile%) in ein Backup auf einen öffentlichen Share kopiert – inklusive des .ssh Verzeichnisses. Lehre: Schützen Sie Ihren privaten Key immer mit einer starken Passphrase. Selbst wenn die Datei gestohlen wird, ist sie für den Dieb ohne das Passwort wertlos.


# 6. Sicherheit & Hardening

Sichere Verbindungen erzwingen.

# Algorithmen einschränken

Bearbeiten Sie die globale Config oder das User-File, um unsichere Ciphers zu verbieten:

Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
KexAlgorithms curve25519-sha256@libssh.org

# 7. Fazit & Empfehlung

OpenSSH auf Windows ist ein Meilenstein für die Interoperabilität.


# Anhang: Cheatsheet

Aufgabe Befehl
Verbindung aufbauen ssh user@host
Port-Forwarding (Lokal) ssh -L 8080:localhost:80 <host>
Dateitransfer (SCP) scp file.txt user@host:/tmp
Key-Fingerprint ssh-keygen -l -f ~/.ssh/id_ed25519

# Referenzen