Skip to content

SSH_Config

kraeml edited this page Nov 25, 2025 · 2 revisions

🌐 Mehrere SSH-Schlüssel & Server-Konfiguration verwalten

Ziel: Mehrere SSH-Schlüssel für verschiedene Server nutzen und die SSH-Konfiguration (~/.ssh/config) optimal einrichten. Zielgruppe: Entwickler:innen, Sysadmins, DevOps. Motivation: Lerne, wie du verschiedene Schlüssel für verschiedene Server nutzt – sicher, effizient und ohne Passwort-Chaos!


⚠️ WICHTIGE HINWEISE

  • Schlüssel-Trennung: Nutze unterschiedliche Schlüssel für verschiedene Dienste (z. B. GitHub, Server, Cloud).
  • Berechtigungen: .ssh-Verzeichnis und Schlüssel müssen chmod 700 bzw. chmod 600 haben.
  • SSH-Agent: Verwalte alle Schlüssel zentral mit ssh-add, damit Passphrasen nur einmal pro Sitzung abgefragt werden.

💡 Tipp für Lehrkräfte:

Zeige, wie SSH-Konfigurationen die Arbeit erleichtern – z. B. für verschiedene Projekte oder Kunden-Server.


Mehrere SSH-Schlüssel generieren

Schritt 1: Schlüssel für verschiedene Dienste erstellen

# Schlüssel für GitHub
ssh-keygen -t ed25519 -C "github@beispiel.de" -f ~/.ssh/id_github

# Schlüssel für einen Cloud-Server
ssh-keygen -t ed25519 -C "cloud@beispiel.de" -f ~/.ssh/id_cloud

# Schlüssel für einen Kunden-Server
ssh-keygen -t ed25519 -C "kunde@beispiel.de" -f ~/.ssh/id_kunde
  • -f ~/.ssh/<name>: Speichert den Schlüssel unter einem eindeutigen Namen.

Schlüssel berechtigen & SSH-Agent hinzufügen

Schritt 2: Berechtigungen setzen

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_* ~/.ssh/config

Hinweis: Falsche Rechte führen häufig zu Permission denied (publickey).

Schritt 3: Alle Schlüssel zum SSH-Agent hinzufügen

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_github
ssh-add ~/.ssh/id_cloud
ssh-add ~/.ssh/id_kunde
  • ssh-add: Fügt Schlüssel zum Agenten hinzu – du musst die Passphrase nur einmal eingeben.

Öffentliche Schlüssel auf Server kopieren

Schritt 4: Schlüssel für jeden Server hinterlegen

# Cloud-Server-Schlüssel kopieren
ssh-copy-id -i ~/.ssh/id_cloud.pub benutzer@cloud-server-ip

# Kunden-Server-Schlüssel kopieren
ssh-copy-id -i ~/.ssh/id_kunde.pub benutzer@kunde-server-ip

Für GitHub & Co. wird der öffentliche Schlüssel als Inhalt von ~/.ssh/id_github.pub in der Weboberfläche (z. B. GitHub „SSH keys“) eingetragen, nicht via ssh-copy-id.


SSH-Konfiguration (~/.ssh/config) einrichten

Schritt 5: Konfigurationsdatei erstellen oder bearbeiten

nano ~/.ssh/config

Beispiel-Konfiguration:

# GitHub
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_github
    IdentitiesOnly yes

# Cloud-Server
Host cloud
    HostName 123.45.67.89
    User ubuntu
    IdentityFile ~/.ssh/id_cloud
    IdentitiesOnly yes

# Kunden-Server
Host kunde
    HostName kunde.beispiel.de
    User admin
    IdentityFile ~/.ssh/id_kunde
    IdentitiesOnly yes
  • Host: Kurzer Name für den Server (z. B. cloud statt IP).
  • IdentityFile: Pfad zum passenden Schlüssel.
  • IdentitiesOnly yes: Verhindert, dass SSH andere Schlüssel ausprobiert.

SSH-Verbindungen testen

Schritt 6: Verbindungen mit den Alias-Namen herstellen

# Verbindung zu GitHub
ssh github.com

# Verbindung zum Cloud-Server
ssh cloud

# Verbindung zum Kunden-Server
ssh kunde
  • Kein Passwort nötig! Der SSH-Agent übernimmt die Authentifizierung.

Best Practices für SSH-Konfiguration

Praktik Beschreibung
IdentitiesOnly yes Erzwingt die Nutzung des angegebenen Schlüssels.
StrictHostKeyChecking yes Verhindert stilles Akzeptieren neuer Hostkeys, schützt vor MITM-Angriffen.
UserKnownHostsFile Eigene known_hosts pro Projekt oder Umgebung.
ProxyJump Ermöglicht SSH-Hopping (z. B. über einen Bastion-Host).

Beispiel für ProxyJump:

Host bastion
    HostName 1.2.3.4
    User ubuntu
    IdentityFile ~/.ssh/id_bastion

Host internal-server
    HostName 192.168.1.100
    User admin
    IdentityFile ~/.ssh/id_internal
    ProxyJump bastion

Fehlerbehebung

Problem Lösung
Permission denied (publickey) Prüfe ~/.ssh/authorized_keys und Rechte: chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys
Too many authentication failures IdentitiesOnly yes in ~/.ssh/config setzen, nur benötigte Keys im Agent halten.
Host key verification failed Fingerprint mit Admin/Doku abgleichen, ggf. ssh-keygen -R <host> und neu verbinden.

Nächste Schritte


🎉 Fertig!

Du kannst jetzt:

Mehrere SSH-Schlüssel für verschiedene Server nutzen.

SSH-Konfiguration für bequeme und sichere Verbindungen einrichten.

Best Practices für SSH-Sicherheit anwenden.

Frage: Möchtest du sehen, wie man SSH-Zertifikate für Teams nutzt? 🔐

🚀 Schnellstart: DOITPi in 30 Sekunden

Für Eilige:

Du willst sofort loslegen? Hier ist der direkte Weg zur 01_Installation


Was du brauchst:

  • Raspberry Pi (Modell 3/4/5 oder Zero 2 W)
  • microSD-Karte (mind. 32 GB)
  • Kartenleser o.Ä
  • Netzteil
  • 15 Minuten Zeit

Los geht’s! 🎉

Jetzt zur 01_Installation


⚡ DOITPi 01a_Autohotspot

Immer verbunden – automatisch!

  • Aktiviert sich selbst, wenn kein WLAN verfügbar ist.
  • SSID: AP_<Hostname> | Passwort: 123456789
  • Zugriff per Browser/SSH – ideal für Headless-Betrieb.
    • Codeserver (für webbasiertes Code-Editing)
    • NodeRed (für visuelles IoT- ROS2-Programmieren)
  • Automatische Umschaltung alle 60 Sekunden.

🔒 Passwort anpassen! 🔧

Kurz, klar, direkt zum Ziel – perfekt für alle, die keine Zeit verlieren wollen! 😊

Clone this wiki locally