# 🔐 Crumbpage 18: Der Schlüsselmeister (SSH Agent) **Subtitle:** *Nie wieder Passwörter tippen ohne Sicherheit zu verlieren* **Pfad:** 18 von X **Schwierigkeit:** ⭐⭐⭐ (3/5) **Zeit:** ~1 Stunde **Voraussetzungen:** [SSH Keys](crumbpage-08-ssh-keys.md), [Workstation](crumbpage-17-workstation.md) > *"Ein guter Diener hält dir die Schlüssel bereit, aber gibt sie niemandem sonst."* 🗝️ --- ## 📋 Was du in diesem Pfad lernst ``` ✓ Was macht der ssh-agent? ✓ ssh-add (Schlüssel hinzufügen) ✓ Agent Forwarding (Der magische Sprung) ✓ Keychain Integration (Mac/Linux) ✓ Die Gefahren von Forwarding ``` --- ## 🎯 Lernziele Nach diesem Pfad kannst du: - [ ] Den `ssh-agent` starten und nutzen - [ ] Verstehen, warum dein Private Key dein Gerät nie verlassen sollte - [ ] Durch einen Bastion-Host "durchspringen" (Agent Forwarding) - [ ] Den Agent sicher beenden oder sperren --- ## 🗝️ Das Problem: Passphrases nerven Du hast deine Keys (wie in Pfad 8 gelernt) mit einer **Passphrase** gesichert. Gut! Aber jetzt musst du bei jedem `git push` oder `ssh server` das Passwort tippen. Das nervt. Und was nervt, wird abgeschaltet (Passwörter entfernt). **Böse!** 🛑 **Die Lösung: Der SSH Agent.** Er ist ein kleiner Prozess im Hintergrund, der deine *entschlüsselten* Keys im RAM hält. Du tippst das Passwort **einmal** (beim Start oder ersten Nutzen), und der Agent erledigt den Rest für dich. --- ## 🛠️ Die Basics ### 1. Lebt der Agent? ```bash $ env | grep SSH_AUTH_SOCK # Wenn hier nichts kommt, läuft kein Agent. ``` ### 2. Starten (Manuell) ```bash $ eval "$(ssh-agent -s)" Agent pid 12345 ``` ### 3. Schlüssel hinzufügen (`ssh-add`) ```bash $ ssh-add ~/.ssh/id_ed25519 Enter passphrase for /home/bmt/.ssh/id_ed25519: ********* Identity added: /home/bmt/.ssh/id_ed25519 (bmt@workstation) ``` Ab jetzt fragt SSH nicht mehr nach dem Passwort, solange der Agent läuft! ### 4. Was ist geladen? ```bash $ ssh-add -l 256 SHA256:abcd... bmt@workstation (ED25519) ``` ### 5. Alles vergessen (Lockdown) ```bash $ ssh-add -D All identities removed. ``` --- ## 🚀 Advanced: Agent Forwarding Stell dir vor: `Workstation` → `Gateway-Server` → `Git-Server (GitHub)` Du bist auf dem `Gateway` und willst `git clone` machen. Dein Key liegt aber auf der `Workstation`. **NIEMALS** kopierst du deinen Private Key auf den Gateway Server! Stattdessen erlaubst du dem Gateway, deinen Agent auf der Workstation zu "fragen". **Config (`~/.ssh/config`):** ```ssh Host gateway HostName gateway.crumbforest.de ForwardAgent yes ``` Jetzt kannst du auf dem Gateway `git clone` machen, und die Authentifizierung "tunnelt" zurück zu deinem Laptop. Magie! ✨ ### ⚠️ Die Gefahr (Security Warning) Wenn du Forwarding aktivierst (`-A` oder `ForwardAgent yes`) und der Admin des Ziel-Servers böse ist (root), kann er deinen lokalen Agenten kapern, solange du verbunden bist. **Regel:** Nutze Forwarding NUR zu Servern, denen du vertraust! --- ## 🍏 & 🐧 Komfort-Integration ### macOS Der Mac macht das automatisch via Keychain. Config (`~/.ssh/config`): ```ssh Host * UseKeychain yes AddKeysToAgent yes ``` ### Linux (Gnome/Keyring) Moderne Distros (Ubuntu, Debian mit Gnome/MATE) starten oft einen Keyring-Daemon, der sich wie ein SSH-Agent verhält. Wenn du es "pur" willst (in `.bashrc`): ```bash if [ -z "$SSH_AUTH_SOCK" ]; then eval "$(ssh-agent -s)" ssh-add fi ``` --- ## 🦉 Crystal Owl's Weisheit > *"Der Schlüssel gehört dem Meister, nicht dem Torwächter."* Niemals Private Keys verteilen. Lass den Agenten die Arbeit machen. Und wenn du gehst, nimm die Schlüssel mit (`ssh-add -D` oder Logout). --- **Version:** 1.0 **Status:** Draft **Tags:** #SSH #Security #Agent #Workflow --- **Navigation:** [← Zurück: Workstation](crumbpage-17-workstation.md) | [Weiter: Zero Trust Agent →](crumbpage-19-agent-lockdown.md)