# 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.exeoder dem Windows Terminal. Für Senior Admins bedeutet das: Echtessh-agentUnterstü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:
- OpenSSH Client: Zum Verbinden auf Remote-Server (Default aktiv).
- 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
- ProxyJump: Ermöglicht den Zugriff auf isolierte VMs im Proxmox-Cluster über den Host als Bastion-Server (Artikel 305).
# 4. Day-2 Operations: Windows Terminal Integration
Schönheit und Funktion.
Nutzen Sie das Windows Terminal, um SSH-Sessions als Tabs zu öffnen.
- Profile: Sie können für jeden Host ein eigenes Profil mit eigenem Farbschema und Icon anlegen.
- Befehl:
ssh proxmox.
# 5. Troubleshooting & “War Stories”
Wenn die Shell stumm bleibt.
# Top 3 Fehlerbilder
-
Symptom: “Permission denied (publickey)”.
- Ursache: Falsche Rechte auf dem
.sshOrdner in Windows oder der Public Key wurde nicht am Ziel-Server inauthorized_keyseingetragen. - Lösung:
ssh -v <host>nutzen, um zu sehen, welcher Key angeboten wird.
- Ursache: Falsche Rechte auf dem
-
Symptom:
ssh-addmeldet “Could not open a connection to your authentication agent”.- Lösung: Dienst
ssh-agentin derservices.mscstarten.
- Lösung: Dienst
-
Symptom: Sonderzeichen (Umlaute) in der SSH-Session werden falsch dargestellt.
- Lösung: Stellen Sie das Windows Terminal auf
UTF-8und prüfen Sie die Locale auf dem Linux-Zielserver (localectl).
- Lösung: Stellen Sie das Windows Terminal auf
# “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.
- Empfehlung: Deinstallieren Sie PuTTY. Der native Client ist schneller, sicherer und besser integriert.
- Entwicklung: Nutzen Sie die Remote-SSH Extension in VS Code. Sie erlaubt es Ihnen, Code direkt auf dem Proxmox-Host zu editieren, als läge er lokal.
# 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 |