⌕
AnmeldenDabei sein ↗

Tippe mindestens zwei Buchstaben. Pfeiltasten wählen, Enter öffnet.

ANLEITUNG</> Software & Code

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.

Eine Konfigurationsdatei mit drei Einträgen, gestrichelt verbunden mit Raspberry Pi, Server und NAS, unten ein Terminal mit dem Befehl ssh pi
Illustration: Spawnpunkt

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:

bash
mkdir -p ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config
nano ~/.ssh/config

Windows (PowerShell): Die Datei liegt unter C:\Users\DeinName\.ssh\config. Dieser Befehl legt sie an und öffnet sie im Editor:

powershell
New-Item -ItemType File -Force $env:USERPROFILE\.ssh\config
notepad $env:USERPROFILE\.ssh\config

Achte 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:

text
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 yes

Ab jetzt meldest du dich so an:

bash
ssh vps

Das 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.

text
Host *
    ServerAliveInterval 30
    ServerAliveCountMax 4
    AddKeysToAgent yes

ServerAliveInterval 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.

Ein Laptop außerhalb verbindet sich mit dem Homeserver im Heimnetz und springt von dort mit einem zweiten Pfeil weiter zum Raspberry Pi
Über einen Jump-Host ins Heimnetz: Der Laptop verbindet sich mit dem erreichbaren Server und springt von dort weiter zum Raspberry Pi.

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:

text
Host heim
    HostName mein-zuhause.example.org
    User benutzer

Host pi-extern
    HostName 192.168.1.50
    User benutzer
    ProxyJump heim

ssh 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:

bash
ssh -J benutzer@mein-zuhause.example.org benutzer@192.168.1.50

Schritt 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:

bash
ssh -L 9443:localhost:9443 pi

Solange die Verbindung offen ist, erreichst du Portainer im Browser unter https://localhost:9443. Dauerhaft trägst du den Tunnel in die Config ein:

text
Host pi-portainer
    HostName 192.168.1.50
    User benutzer
    LocalForward 9443 localhost:9443

Wie 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.

bash
mkdir -p ~/.ssh/sockets

Dann im Block Host * ergänzen:

text
ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h-%p
    ControlPersist 10m
✓ Fazit
  • Die Datei ~/.ssh/config spart lange Befehle und gilt auch für scp, rsync, Git und VS Code
  • Einzelne Server oben, Host * mit gemeinsamen Einstellungen ans Ende
  • IdentitiesOnly yes gegen „Too many authentication failures“
  • ProxyJump für Geräte hinter einem anderen Server
  • LocalForward tunnelt Weboberflächen, ohne Ports im Internet zu öffnen

Wie sieht deine SSH-Config aus? Teile deine Lieblingseinstellungen in der Community.

Quellen

Kommentare

Noch keine Kommentare. Was meinst du dazu?

Mitreden? Melde dich an, um zu kommentieren.

Frage stellen

Spawnpunkt bindet keine Dienste von Drittanbietern ein. Alles, was du hier erlaubst, bleibt auf meinem eigenen Server.