SSH-Config richtig nutzen: Aliase, Jump-Hosts und Portweiterleitung
Statt ssh -p 2222 -i ~/.ssh/key admin@203.0.113.10 tippst du nur noch ssh vps. Wir zeigen, wie die SSH-Config funktioniert, wie du über einen Jump-Host springst und Weboberflächen sicher tunnelst.

Mit der Zeit sammeln sich Server an: der Raspberry Pi im Wohnzimmer, das NAS, ein gemieteter Server für den Gameserver. Jeder hat eine andere Adresse, einen anderen Benutzer, vielleicht einen anderen Port und Schlüssel. Die SSH-Config ist eine einfache Textdatei, in der du all das einmal festhältst. Danach reicht ein kurzer Name.
Du brauchst: einen Rechner mit SSH-Client (Windows 10/11, macOS oder Linux) und mindestens einen Server, auf dem du dich bereits anmelden kannst. Zeitaufwand: etwa 15 Minuten.
Schritt 1: Die Datei anlegen
Die Datei heißt config (ohne Endung) und liegt im Ordner .ssh in deinem Benutzerverzeichnis.
macOS und Linux:
mkdir -p ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config
nano ~/.ssh/configWindows (PowerShell): Die Datei liegt unter C:\Users\DeinName\.ssh\config. Dieser Befehl legt sie an und öffnet sie im Editor:
New-Item -ItemType File -Force $env:USERPROFILE\.ssh\config
notepad $env:USERPROFILE\.ssh\configAchte im Editor darauf, dass er keine Endung .txt anhängt.
Schritt 2: Die ersten Einträge
Jeder Eintrag beginnt mit Host und einem frei wählbaren Kurznamen. Darunter folgen die Einstellungen, eingerückt mit Leerzeichen:
Host pi
HostName 192.168.1.50
User benutzer
Host nas
HostName 192.168.1.20
User admin
Host vps
HostName 203.0.113.10
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519_vps
IdentitiesOnly yesAb jetzt meldest du dich so an:
ssh vpsDas funktioniert auch für alle Programme, die auf SSH aufbauen, etwa scp, rsync, sftp, Git und die Erweiterung „Remote - SSH“ in VS Code. IdentitiesOnly yes sorgt dafür, dass SSH nur den angegebenen Schlüssel anbietet und nicht alle aus dem Agenten. Das verhindert die Fehlermeldung „Too many authentication failures“ bei Servern mit MaxAuthTries 3.
Schritt 3: Gemeinsame Einstellungen für alle Server
Einstellungen, die überall gelten sollen, kommen in einen Block Host *. Er gehört ans Ende der Datei, denn SSH nimmt pro Einstellung den ersten passenden Wert. So können einzelne Server oben eigene Werte setzen.
Host *
ServerAliveInterval 30
ServerAliveCountMax 4
AddKeysToAgent yesServerAliveInterval schickt alle 30 Sekunden ein kleines Lebenszeichen. Dadurch brechen Sitzungen nicht mehr ab, wenn du eine Weile nichts tippst und ein Router die Verbindung sonst für tot hält. AddKeysToAgent legt den Schlüssel nach der ersten Passphrase-Eingabe automatisch im Agenten ab.

Schritt 4: Über einen Jump-Host springen
Manche Geräte sind von außen nicht direkt erreichbar, aber über einen anderen Server. Typisch ist ein Homeserver, der als einziger Rechner im Heimnetz per SSH erreichbar ist. Mit ProxyJump springst du automatisch über ihn weiter:
Host heim
HostName mein-zuhause.example.org
User benutzer
Host pi-extern
HostName 192.168.1.50
User benutzer
ProxyJump heimssh pi-extern verbindet sich jetzt erst mit heim und von dort mit dem Pi. Die Schlüssel bleiben dabei auf deinem Rechner. Einmalig ohne Config geht es mit dem Schalter -J:
ssh -J benutzer@mein-zuhause.example.org benutzer@192.168.1.50Schritt 5: Weboberflächen sicher tunneln
Viele Dienste im Homelab haben eine Weboberfläche, die nicht offen im Internet stehen sollte, zum Beispiel Portainer auf Port 9443. Mit einer lokalen Portweiterleitung holst du sie durch die verschlüsselte SSH-Verbindung auf deinen Rechner:
ssh -L 9443:localhost:9443 piSolange die Verbindung offen ist, erreichst du Portainer im Browser unter https://localhost:9443. Dauerhaft trägst du den Tunnel in die Config ein:
Host pi-portainer
HostName 192.168.1.50
User benutzer
LocalForward 9443 localhost:9443Wie du Portainer auf dem Raspberry Pi einrichtest, zeigt unsere Anleitung: https://spawnpunkt.de/magazin/raspberry-pi-als-heimserver-docker-po…
Schritt 6: Schnellere Verbindungen (macOS und Linux)
Wenn du dich oft mit demselben Server verbindest, kann SSH eine Verbindung wiederverwenden. Die zweite Verbindung steht dann sofort, ohne neue Anmeldung. Unter Windows funktioniert das mit dem eingebauten OpenSSH leider nicht.
mkdir -p ~/.ssh/socketsDann im Block Host * ergänzen:
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 10m- Die Datei
~/.ssh/configspart lange Befehle und gilt auch für scp, rsync, Git und VS Code - Einzelne Server oben,
Host *mit gemeinsamen Einstellungen ans Ende IdentitiesOnly yesgegen „Too many authentication failures“ProxyJumpfür Geräte hinter einem anderen ServerLocalForwardtunnelt Weboberflächen, ohne Ports im Internet zu öffnen
Wie sieht deine SSH-Config aus? Teile deine Lieblingseinstellungen in der Community.
- OpenSSH Handbuch: ssh_config – man.openbsd.org/ssh_config
Kommentare
Noch keine Kommentare. Was meinst du dazu?
Mitreden? Melde dich an, um zu kommentieren.