SSH-Schlüssel sind ein zentraler Bestandteil sicherer Admin-Zugänge auf Servern. Ein professioneller SSH-Key-Lifecycle sorgt dafür, dass Schlüssel regelmäßig rotiert, zentral signiert und kompromittierte Keys schnell widerrufen werden. Ohne klare Prozesse steigt das Risiko von unautorisierten Zugriffen oder Missbrauch erheblich. Dieser Artikel zeigt praxisnah, wie man Rotation, CA-Signing und Revocation professionell implementiert.
Grundlagen des SSH-Key-Lifecycles
Der Lifecycle eines SSH-Keys umfasst mehrere Phasen: Erstellung, Verteilung, Nutzung, Rotation und schließlich Widerruf. Jede Phase sollte klar definiert sein, um Sicherheitslücken zu vermeiden.
Schlüsselerstellung
SSH-Schlüsselpaare bestehen aus einem privaten und einem öffentlichen Schlüssel. Der private Schlüssel verbleibt sicher beim Benutzer oder Dienst, der öffentliche wird auf den Zielservern hinterlegt.
# Generierung eines Ed25519-Schlüssels
ssh-keygen -t ed25519 -C "user@example.com" -f ~/.ssh/id_ed25519
Verteilung
Der öffentliche Schlüssel wird auf Servern hinterlegt, z. B. in ~/.ssh/authorized_keys. Automatisierte Tools wie Ansible oder SSH-CA-basiertes Deployment erleichtern die sichere Verteilung.
# Hinzufügen eines Public Keys zu einem Server
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
Key Rotation
Regelmäßige Schlüsselrotation verhindert langfristige Risiken durch kompromittierte Keys. Dabei sollte ein paralleles Setup von altem und neuem Key verwendet werden, um Downtime zu vermeiden.
Rotation vorbereiten
- Neues Key-Paar generieren
- Öffentlichen Schlüssel auf allen relevanten Servern hinterlegen
- Alten Key noch parallel akzeptieren, bis alle Nutzer gewechselt haben
# Neues Schlüsselpaar generieren
ssh-keygen -t ed25519 -C "user@example.com" -f ~/.ssh/id_ed25519_new
Deployment des neuen Keys auf Server
ssh-copy-id -i ~/.ssh/id_ed25519_new.pub user@server
Alte Keys deaktivieren
Sobald alle Nutzer auf den neuen Key gewechselt haben, sollte der alte Key aus authorized_keys entfernt werden, um Missbrauch zu verhindern.
# Entfernen des alten Keys aus authorized_keys
ssh user@server 'sed -i "/old_key_string/d" ~/.ssh/authorized_keys'
SSH Certificate Authority (CA) Signing
SSH-CA erlaubt das zentrale Signieren von Benutzer-Keys. Server müssen nur dem CA-Public-Key vertrauen, wodurch individuelle Key-Verwaltung auf Servern entfällt.
CA-Key erstellen
# CA-Schlüsselpaar generieren
ssh-keygen -f ~/.ssh/ca -C "SSH-CA"
Benutzer-Key signieren
Der Benutzer-Key wird durch die CA signiert und erhält ein Ablaufdatum. Dies erleichtert die Rotation und zeitlich begrenzten Zugang.
# Signieren eines User-Keys
ssh-keygen -s ~/.ssh/ca -I user@example.com -n user -V +52w ~/.ssh/id_ed25519.pub
Server konfigurieren
Server akzeptieren nur Keys, die von der CA signiert wurden:
# In /etc/ssh/sshd_config
TrustedUserCAKeys /etc/ssh/ca.pub
SSHD neu starten
systemctl restart sshd
Revocation von Keys
Im Falle eines kompromittierten Keys muss dieser schnell widerrufen werden. SSH unterstützt CRL-Dateien oder die Trennung über Ablaufdaten bei CA-basierten Keys.
Revocation via CA
- Erstellen einer Revocation-Datei
- Einbinden in die Server-Konfiguration
- Keys in der Liste werden abgelehnt
# Revocation einer signierten CA-Zertifikatsdatei
ssh-keygen -k -f /etc/ssh/revoked_keys -u compromised_key.pub
SSHD Config
RevokedKeys /etc/ssh/revoked_keys
systemctl restart sshd
Alternative ohne CA
Bei traditionellen Keys muss der kompromittierte Key direkt aus authorized_keys entfernt werden.
# Key aus authorized_keys löschen
ssh user@server 'sed -i "/compromised_key_string/d" ~/.ssh/authorized_keys'
Monitoring und Audit
Alle Zugriffe mit SSH sollten geloggt und überwacht werden. Dies ermöglicht das Erkennen unautorisierter Key-Nutzung und hilft bei Audits.
# Beispiel: SSH-Login-Überwachung
journalctl -u sshd -f
Optional: Fail2Ban Schutz für fehlgeschlagene Logins
apt-get install fail2ban
Best Practices für den SSH-Key-Lifecycle
- Verwende starke Key-Typen (Ed25519 oder RSA 4096)
- Automatisiere Key-Rotation mit CA und Ablaufdaten
- Setze zentrale CA für bessere Verwaltung
- Führe sofortige Revocation bei kompromittierten Keys durch
- Auditiere Key-Nutzung und implementiere Logging
- Begrenze Privilegien der SSH-Benutzer
Zusammenfassung
Ein professioneller SSH-Key-Lifecycle reduziert Sicherheitsrisiken erheblich. Durch die Kombination von regelmäßiger Rotation, zentralem CA-Signing, kontrollierter Revocation und Auditierung wird sichergestellt, dass SSH-Zugänge sicher und überprüfbar bleiben. Die beschriebenen Prozesse eignen sich sowohl für kleine Serverlandschaften als auch für großskalige Infrastruktur in Cloud- oder On-Premises-Umgebungen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











