Site icon bintorosoft.com

SSH Key Lifecycle: Rotation, CA Signing und Revocation Prozesse

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 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

# 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

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:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version