-
Notifications
You must be signed in to change notification settings - Fork 0
SSH_Config
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!
- Schlüssel-Trennung: Nutze unterschiedliche Schlüssel für verschiedene Dienste (z. B. GitHub, Server, Cloud).
-
Berechtigungen:
.ssh-Verzeichnis und Schlüssel müssenchmod 700bzw.chmod 600haben. -
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.
# 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.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_* ~/.ssh/configHinweis: Falsche Rechte führen häufig zu Permission denied (publickey).
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.
# 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-ipFü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.
nano ~/.ssh/configBeispiel-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.cloudstatt IP). -
IdentityFile: Pfad zum passenden Schlüssel. -
IdentitiesOnly yes: Verhindert, dass SSH andere Schlüssel ausprobiert.
# 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.
| 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
| 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. |
- 🔗 SSH-Konfiguration vertiefen
- 🔗 SSH-Agent unter Windows (Pageant)
- 🔗 SSH-Zertifikate für Teams (GitHub)
🎉 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? 🔐
Hier zu Home
DOITPi ist Open Source und steht unter der MIT-LICENSE.
- Code: GitHub Repository
- Dokumentation: Wiki
- Releases: Aktuelles Image herunterladen
Hinweis: DOITPi nutzt Tools und Bibliotheken Dritter. Die jeweiligen Lizenzen finden Sie in den Danksagungen.
DOITPi steht auf den Schultern von Riesen. Besonderer Dank gilt:
- Raspberry Pi OS (Basis-System)
- CustomPiOS (Image-Erstellung)
- NetworkManager (Auto-Hotspot-Funktion)
- ROS2 & Node-RED (Robotik & IoT)
- Ansible (Automatisierung)
- Allen Mitwirkenden (GitHub Contributors)!
💙 Möchtest du hier auftauchen? Trage bei und sende einen Pull Request!
DOITPi © 2023–2025 DevOps & IoT für alle – einfach, offen, leistungsstark.
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! 😊