Tutorial: AWS EC2 Key Pair (.pem) ohne Downtime zurücksetzen
Hier ist ein ausführliches Tutorial, wie du ein AWS EC2 Key Pair (.pem Datei) austauschen oder zurücksetzen kannst, ohne die Instanz zu stoppen oder neu zu starten.
Normalerweise erfordert der Wechsel eines Key Pairs bei AWS das Stoppen der Instanz, um die User-Data zu bearbeiten. Es gibt jedoch zwei effiziente Wege, dies im laufenden Betrieb zu tun.
Voraussetzungen
- Du hast ein neues Key Pair auf deinem lokalen Rechner erstellt (z.B. via AWS Konsole oder
ssh-keygen). - Du benötigst den Public Key des neuen Paares (meistens eine Datei mit der Endung
.puboder extrahiert aus der.pem).
Methode 1: Über den AWS Systems Manager (SSM) – Empfohlen
Dies ist der sicherste Weg, da er keinen bestehenden SSH-Zugriff benötigt, solange der SSM-Agent auf der Instanz läuft (Standard bei Amazon Linux 2/3 und vielen Ubuntu-AMIs).
Schritt 1: Public Key vorbereiten
Falls du nur die .pem Datei hast, extrahiere den Public Key auf deinem lokalen Rechner:
ssh-keygen -y -f mein-neuer-key.pem > mein-neuer-key.pub
Kopiere den Inhalt der Datei mein-neuer-key.pub.
Schritt 2: Verbindung via SSM herstellen
- Gehe in die AWS Management Console -> EC2.
- Wähle deine Instanz aus.
- Klicke oben auf Connect (Verbinden).
- Wähle den Reiter Session Manager und klicke auf Connect.
- Es öffnet sich ein Terminal im Browser.
Schritt 3: Key auf der Instanz austauschen
Im Browser-Terminal gibst du folgende Befehle ein (ersetze ec2-user durch deinen Benutzernamen, z.B. ubuntu oder admin):
- Wechsle zum entsprechenden Verzeichnis:
cd /home/ec2-user/.ssh/ - Öffne die Datei
authorized_keysmit einem Editor (z.B. nano):nano authorized_keys - Lösche den alten Key (optional) und füge den Inhalt deines neuen Public Keys ein.
- Speichere mit
Strg+O,Enterund beende mitStrg+X.
Methode 2: Über EC2 Instance Connect
Wenn deine Instanz im öffentlichen Subnetz liegt und "EC2 Instance Connect" unterstützt wird, kannst du dich direkt im Browser einloggen.
- Wähle die Instanz in der Konsole aus.
- Klicke auf Connect.
- Wähle EC2 Instance Connect.
- Klicke auf Connect.
- Führe dieselben Schritte wie in Methode 1 (Schritt 3) aus, um die Datei
~/.ssh/authorized_keyszu bearbeiten.
Methode 3: Wenn du noch Zugriff mit dem alten Key hast
Falls du den alten Key noch hast, aber auf einen neuen umstellen möchtest:
- Verbinde dich ganz normal per SSH:
ssh -i alter-key.pem ec2-user@deine-ip - Nutze den Befehl
ssh-copy-id, um den neuen Key hinzuzufügen (von deinem lokalen Rechner aus):ssh-copy-id -i neuer-key.pub ec2-user@deine-ipAlternativ: Kopiere den Public Key manuell in die
authorized_keysDatei, wie in Methode 1 beschrieben.
Abschließende Prüfung
Bevor du die Session beendest oder den alten Key wegwirfst, teste den neuen Key in einem neuen Terminal-Fenster:
ssh -i mein-neuer-key.pem ec2-user@deine-ip
Wenn der Login funktioniert, hast du das Key Pair erfolgreich ohne jegliche Downtime ausgetauscht.
Wichtiger Hinweis zur AWS Konsole
Die AWS Konsole wird unter "Key pair name" in den Instanz-Details weiterhin den Namen des alten Keys anzeigen. Dies ist ein statisches Metadatum, das AWS beim Launch festlegt. Es hat keinen Einfluss auf die technische Funktion. Der Zugriff erfolgt nun ausschließlich über deinen neuen Key.