Der SSH-Agent ist ein Hintergrundprogramm, das entsperrte SSH-Schlüssel im Speicher hält und sie für SSH-Verbindungen bereitstellt — ohne dass die Passphrase bei jedem Verbindungsaufbau neu eingegeben werden muss. Der Agent läuft üblicherweise auf dem eigenen Rechner und kommuniziert mit dem SSH-Client über einen Unix-Socket (Umgebungsvariablen SSH_AUTH_SOCK und SSH_AGENT_PID).
So arbeitet der SSH-Agent
Der private Schlüssel bleibt im Agent-Speicher und verlässt ihn nie. Bei einer Verbindung fragt der SSH-Client den Agent, die Authentifizierungs-Signatur zu erstellen; das Schlüsselmaterial selbst wird nicht an den Server übertragen. Schlüssel werden mit ssh-add hinzugefügt (ssh-add ~/.ssh/id_ed25519), ssh-add -l listet die geladenen Schlüssel. Moderne Desktops und macOS/Windows bieten eigene Agent-Implementierungen, die den Schlüssel zusätzlich in der sicheren Hardware des Systems schützen können.
Agent Forwarding
Mit Agent Forwarding (ssh -A) kann ein Server die Agent-Verbindung weiterreichen, sodass von dort aus weitere Sprünge ohne Schlüsselkopie möglich sind. Das ist praktisch für Sprungserver-Ketten, aber riskant: Ein kompromittierter Server mit Root-Rechten kann den Agent-Socket missbrauchen. Agent Forwarding sollte nur bei vertrauenswürdigen Zwischenstationen aktiviert werden — Alternativen sind ProxyJump (konfigurierbar in der ssh-config) oder das Umsteigen auf den SSH-Tunnel.
Zusammenspiel
Der Agent entfaltet seinen Nutzen vor allem mit SSH-Keys: einmal Passphrase eingeben, danach meldet sich der Client bei allen Servern an, auf denen der öffentliche Schlüssel hinterlegt ist. Verwandte Grundlagen: SSH und ssh, scp und rsync: Remote-Verbindungen und Datei-Transfer.