**Dies ist eine alte Version des Dokuments!**
Inhaltsverzeichnis
SSH-Zugang ĂĽber Bastion Host unter Windows ohne Passwort
Dieser Eintrag beschreibt, wie unter Windows ein SSH-Zugang über einen Bastion-Host (Jump Host) eingerichtet wird, sodass Verbindungen zu internen Systemen ohne Passwort, ausschließlich über SSH-Key-Authentifizierung, möglich sind.
Die Anleitung basiert auf folgenden Zielen:
- Anmeldung am Bastion Host ohne Passwort
- Weiterleitung zu internen Servern automatisch ĂĽber
ProxyJump - Nutzung einer sauberen
~/.ssh/configfĂĽr komfortable Befehle wie
ssh bastion ssh server1 ssh pihole
1. Voraussetzungen
- Windows 10/11 mit installiertem OpenSSH-Client
- Ein erzeugtes SSH-SchlĂĽsselpaar (z. B. ED25519)
- Zugriff auf den Bastion Host (öffentliche IP + SSH-Port)
- Interne Systeme sind vom Bastion aus erreichbar
2. SSH-Key unter Windows erzeugen
Falls noch kein Key vorhanden ist:
ssh-keygen -t ed25519 -C "windows-client"
Die Dateien werden automatisch erstellt unter:
C:\Users\<Benutzer>\.ssh\id_ed25519 C:\Users\<Benutzer>\.ssh\id_ed25519.pub
Die Passphrase kann leer bleiben, wenn keine Eingabe gewĂĽnscht ist.
3. Public Key auf dem Bastion Host hinterlegen
Der öffentliche Schlüssel muss auf dem Bastion in:
~/.ssh/authorized_keys
hinterlegt werden.
BeispielĂĽbertragung aus PowerShell:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh benutzer@bastion.fqdn -p <PORT> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Wichtig:
- Die Datei
authorized_keysdarf nur dem Benutzer selbst gehören - Rechte setzen:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
**4. Verbindung zum Bastion Host testen**
ssh bastion
Erwartetes Verhalten:
- Keine Passwortabfrage
- Anmeldung ĂĽber Public-Key
- Stabiler SSH-Login
Falls der Key nicht akzeptiert wird: prĂĽfen, ob der richtige Public Key auf dem Bastion eingetragen wurde.
**5. Konfiguration der Datei `~/.ssh/config` unter Windows**
Unter Windows befindet sich die Datei hier:
C:\Users\<Benutzer>\.ssh\config
Beispielkonfiguration:
- snippet.sshconfig
# Bastion Host Host bastion HostName bastion.example.com Port <individuelles Port> User jumpuser IdentityFile C:/Users/<Benutzer>/.ssh/id_ed25519 ServerAliveInterval 30 ServerAliveCountMax 3 # Interne Hosts werden automatisch ĂĽber Bastion geroutet Host server1 HostName 192.168.100.xx User admin ProxyJump bastion IdentityFile C:/Users/<Benutzer>/.ssh/id_ed25519 Host server2 HostName 192.168.100.xx User admin ProxyJump bastion IdentityFile C:/Users/<Benutzer>/.ssh/id_ed25519
Hinweise:
- Windows verwendet Schrägstriche
/in Pfaden - Kein
ControlMasterunter Windows verwenden (nicht kompatibel)
**6. Verbindung zu internen Systemen nutzen**
Durch die Config reichen nun einfache Befehle:
ssh server1 ssh pihole
Ablauf:
- Windows verbindet automatisch zum Bastion Host
- Authentifizierung erfolgt per SSH-Key
- Der Zielserver wird ĂĽber einen Tunnel erreicht
- Es erfolgt keine Passwortabfrage
**7. Fehlersuche (Troubleshooting)**
| Problem | Ursache | Lösung |
| ——————————————- | ———————————– | ————————————————- |
| Permission denied (publickey) | Public Key fehlt oder falscher User | Key erneut prĂĽfen, in authorized_keys eintragen |
| Verbindung nutzt Port 22 statt Bastion-Port | Host-Name stimmt nicht ĂĽberein | In Host-Block identischen Namen verwenden |
| „Not a socket“ / ProxyJump bricht ab | Fehlerhafte config oder Troll-Proxy | Config minimieren, Multiplexing entfernen |
| Passwort wird verlangt | Passwortauth aktiviert | Auf Bastion: PasswordAuthentication no setzen |
**8. Sicherheitshinweise**
- Jeder Client sollte einen eigenen SSH-Key besitzen
- Alte Keys regelmäßig aus
authorized_keysentfernen - Datei-Rechte streng setzen (600 bzw. 700)
- Optional: SSH-Zertifikate (CA-basiert) einsetzen, wenn viele Nutzer verwaltet werden
**9. Zusammenfassung**
Mit der oben beschriebenen Einrichtung ermöglicht Windows eine vollständig passwortlose SSH-Anmeldung über einen Bastion Host.
Die Nutzung der ~/.ssh/config vereinfacht die tägliche Arbeit erheblich und sorgt für sichere, wiederholbare Verbindungen — egal, ob zu extern erreichbaren Systemen oder internen Servern, die ausschließlich über den Bastion Host zugänglich sind.