542 Stimmen

Ändern Sie das Schlüsselpaar für die EC2-Instanz

Wie kann ich das Schlüsselpaar für meine EC2-Instanz in der AWS-Verwaltungskonsole ändern? Ich kann die Instanz anhalten, ein neues Schlüsselpaar erstellen, aber ich sehe keinen Link, um das Schlüsselpaar der Instanz zu ändern.

3 Stimmen

Ich folgte den Schritten in diesem Video und es hat funktioniert youtube.com/watch?v=OF2AOekW4IE

1 Stimmen

Es scheint, dass es nicht möglich ist, auch kann man den Schlüssel-Paar von AWS löschen und in diesem Fall kann der Host m/c sich nicht in die EC2-Instanzen einloggen. Sieht so aus, als ob es ein Defekt ist

623voto

yegor256 Punkte 96888

Diese Antwort ist nützlich falls Sie keinen SSH-Zugriff mehr auf den vorhandenen Server haben (d.h. Sie haben Ihren privaten Schlüssel verloren).

Wenn Sie noch Zugriff auf SSH haben, verwenden Sie bitte eine der unten stehenden Antworten.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Hier ist, was ich gemacht habe, dank Eric Hammonds Blog-Beitrag:

  1. Stoppen Sie die laufende EC2-Instanz

  2. Entfernen Sie ihr /dev/xvda1 Volume (nennen wir es Volume A) - hier ansehen

  3. Starten Sie eine neue t1.micro EC2-Instanz unter Verwendung meines neuen Schlüsselpaares. Vergewissern Sie sich, dass Sie es im selben Subnetz erstellen, ansonsten müssen Sie die Instanz beenden und erneut erstellen. - hier ansehen

  4. Hängen Sie Volume A an die neue Micro-Instanz als /dev/xvdf (oder /dev/sdf) an

  5. SSH zur neuen Micro-Instanz und mounten Sie Volume A auf /mnt/tmp

    $ sudo mkdir /mnt/tmp; sudo mount /dev/xvdf1 /mnt/tmp

  6. Kopieren Sie ~/.ssh/authorized_keys nach /mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Ausloggen

  8. Beenden Sie die Micro-Instanz

  9. Trennen Sie Volume A von ihr ab

  10. Hängen Sie Volume A zurück an die Hauptinstanz als /dev/xvda

  11. Starten Sie die Hauptinstanz

  12. Melden Sie sich wie zuvor an, mit Ihrer neuen .pem Datei

Das war's.

13 Stimmen

Hat mir gerade den Arsch gerettet, du bist eine Legende!

0 Stimmen

Vielen Dank! Dieses Video sollte bei den Schritten 3-6 helfen youtube.com/watch?v=gBII3o3BofU. PS: Überspringe nur den Befehl "sudo mke2fs -F -t ext4 /dev/xdvf" im Video. Beachte außerdem, dass der Typ im Video das Verzeichnis "/data" anstelle von "/mnt/tmp" verwendet, wie in Schritt 5 und 6 angegeben.

1 Stimmen

Stellen Sie sicher, dass Ihre Volumes sich in derselben Verfügbarkeitszone befinden.

216voto

Eric Hammond Punkte 21591

Sobald eine Instanz gestartet wurde, gibt es keine Möglichkeit, den mit der Instanz verbundenen Schlüssel auf Metadatenebene zu ändern, aber Sie können den ssh-Schlüssel ändern, den Sie zum Verbinden mit der Instanz verwenden.

Bei den meisten AMIs gibt es einen Startvorgang, der den öffentlichen ssh-Schlüssel herunterlädt und in einer .ssh/authorized_keys-Datei installiert, damit Sie sich als dieser Benutzer mit dem entsprechenden privaten ssh-Schlüssel per ssh anmelden können.

Wenn Sie den ssh-Schlüssel ändern möchten, den Sie zum Zugriff auf eine Instanz verwenden, sollten Sie die authorized_keys-Datei auf der Instanz selbst bearbeiten und in Ihren neuen ssh-öffentlichen Schlüssel konvertieren.

Die authorized_keys-Datei befindet sich im .ssh-Unterverzeichnis im Home-Verzeichnis des Benutzers, mit dem Sie sich gerade einloggen. Je nach AMI, das Sie verwenden, könnte sie sich in einem der folgenden Verzeichnisse befinden:

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

Nachdem Sie eine authorized_keys-Datei bearbeitet haben, verwenden Sie immer ein anderes Terminal, um zu bestätigen, dass Sie sich bei der Instanz per ssh anmelden können, bevor Sie die Sitzung, die Sie zum Bearbeiten der Datei verwenden, beenden. Sie möchten nicht versehentlich einen Fehler machen und sich komplett von der Instanz aussperren.

Wenn Sie über ssh-Schlüsselpaare auf EC2 nachdenken, empfehle ich, Ihren eigenen persönlichen ssh öffentlichen Schlüssel auf EC2 hochzuladen, anstatt Amazon den Schlüssel für Sie generieren zu lassen.

Hier ist ein Artikel, den ich dazu geschrieben habe:

Persönliche ssh-Schlüssel auf Amazon EC2 hochladen
http://alestic.com/2010/10/ec2-ssh-keys

Dies gilt nur für neue Instanzen, die Sie ausführen.

0 Stimmen

Ich habe diesen Fehler dumm gemacht, ich meine, ich habe die authorized_keys-Datei bearbeitet und mich ausgeloggt. Jetzt kann ich nicht mehr ssh zurück :(. Irgendwelche schnelle Lösungsvorschläge?

14 Stimmen

Aatifh: Hier ist ein Artikel, den ich darüber geschrieben habe, wie man sich aus dieser Situation befreien kann: alestic.com/2011/02/ec2-fix-ebs-root

0 Stimmen

@EricHammond Dies mag fehl am Platz sein, aber du scheinst zu wissen, wie das alles funktioniert... Ich habe heute eine EC2-Instanz eingerichtet und die private Schlüsseldatei .pem auf meinem Mac erhalten, jedoch authentifiziert ssh -i key.pem nicht (permission denied (publickey)). Im EC2-Managementkonsole unter Schlüsselpaar-Name steht nichts. Das beunruhigt mich. Wie kann ich das einstellen? Es scheint, dass basierend auf der Managementkonsole keines der von mir konfigurierten Schlüsselpaare der Instanz zugewiesen wurde!

102voto

Pat Mcb Punkte 947

Führen Sie diesen Befehl aus, nachdem Sie Ihre AWS pem heruntergeladen haben.

ssh-keygen -f YOURKEY.pem -y

Dann geben Sie die Ausgabe in authorized_keys.

Oder kopieren Sie die PEM-Datei auf Ihre AWS-Instanz und führen Sie die folgenden Befehle aus:

chmod 600 YOURKEY.pem

und dann

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

23 Stimmen

Das funktioniert nur, wenn Sie bereits Zugriff auf das System haben, oder? (wie wenn Sie die alte .pem-Datei nicht verloren haben).

8 Stimmen

Du kannst > anstatt von >> benutzen, um den aktuellen Benutzer zu überschreiben anstatt ihn hinzuzufügen.

3 Stimmen

Dies ist die korrekte und einfachste Antwort. Es ist nicht nötig, neu zu starten, neue Instanzen zu erstellen oder Laufwerke zu mounten. Holen Sie sich einfach die .pem-Datei, erstellen Sie den Schlüssel und fügen Sie ihn zu authorized_hosts hinzu.

70voto

Elia Weiss Punkte 7054

Anweisungen vom AWS EC2-Support:

  1. Ändern Sie das Pem-Login
  2. Gehen Sie zu Ihrer EC2-Konsole
  3. Unter NETZWERK & SICHERHEIT Klicken Sie auf Schlüsselpaar Klicken Sie auf Schlüsselpaar erstellen
  4. Geben Sie Ihrem neuen Schlüsselpaar einen Namen, speichern Sie die .pem-Datei. Der Name des Schlüsselpaars wird verwendet, um eine Verbindung zu Ihrer Instanz herzustellen
  5. Erstellen Sie eine SSH-Verbindung zu Ihrer Instanz und halten Sie sie geöffnet
  6. In PuttyGen auf "Laden" klicken, um Ihre .pem-Datei zu laden
  7. Behalten Sie die SSH-2 RSA-Optionstaste aktiviert. Klicken Sie auf "Privaten Schlüssel speichern" Sie erhalten ein Popup-Fenster Warnung, klicken Sie auf "Ja"
  8. Klicken Sie auch auf "Öffentlichen Schlüssel speichern", um den öffentlichen Schlüssel zu generieren. Dies ist der öffentliche Schlüssel, den wir zur aktuellen Instanz kopieren werden
  9. Speichern Sie den öffentlichen Schlüssel mit dem Namen des neuen Schlüsselpaars und mit der Erweiterung .pub
  10. Öffnen Sie den Inhalt des öffentlichen Schlüssels in einem Editor
  11. Kopieren Sie den Inhalt unter "Kommentar: „importierter-openssh-Schlüssel“ und vor "----END SSH2 PUBLIC KEY----
    Hinweis - Sie müssen den Inhalt als eine Zeile kopieren - löschen Sie alle Zeilenumbrüche
  12. Auf Ihrer verbundenen Instanz Öffnen Sie Ihre authorized_keys-Datei mit dem Tool vi. Führen Sie den folgenden Befehl aus: vi .ssh/authorized_keys Sie sollten auch den ursprünglichen öffentlichen Schlüssel in der Datei sehen
  13. Bewegen Sie den Cursor in der Datei ans Ende Ihres ersten öffentlichen Schlüssels Inhalt: Geben Sie "i" für einfügen ein
  14. In der neuen Zeile geben Sie "ssh-rsa" ein und fügen ein Leerzeichen hinzu, bevor Sie einfügen den Inhalt des öffentlichen Schlüssels, Leerzeichen und den Namen des .pem Datei (ohne .pem) Hinweis - Sie sollten eine Zeile im selben Format wie die vorherige Zeile erhalten
  15. Drücken Sie die Esc-Taste und geben Sie dann ein: wq!

Dies speichert die aktualisierte authorized_keys-Datei

Versuchen Sie jetzt, eine neue SSH-Sitzung zu Ihrer Instanz mit Ihrem neuen Schlüssel zu öffnen

Wenn Sie bestätigt haben, dass Sie in der Lage sind, mit dem neuen Schlüsselpaar eine SSH-Verbindung zur Instanz herzustellen, können Sie vi .ssh/authorized_key aufrufen und den alten Schlüssel löschen.

Antwort auf Bemerkung von Shaggie:

Wenn Sie keine Verbindung zur Instanz herstellen können (z. B. Schlüssel beschädigt sind), verwenden Sie die AWS-Konsole, um das Volume zu trennen (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html) und hängen Sie es an eine funktionierende Instanz an, ändern Sie dann den Schlüssel auf dem Volume und hängen Sie es wieder an die vorherige Instanz.

7 Stimmen

Sollte die beste Antwort sein

3 Stimmen

Was ist, wenn der alte Schlüssel beschädigt ist und Sie keine Verbindung zur Instanz über Putty herstellen können, da Sie die alte PPK-Datei nicht haben???

9 Stimmen

Was ist, wenn Sie keinen SSH-Zugriff haben, daher dieses Problem.

48voto

Mark Berry Punkte 16023

Ich habe festgestellt, dass Sie, wenn Sie von Elastic Beanstalk verwaltet werden, Ihr aktives EC2-Schlüsselpaar ändern können. Unter Elastic Beanstalk > Konfiguration > Sicherheit wählen Sie den neuen Schlüssel aus dem Dropdown-Menü EC2-Schlüsselpaar aus. Sie werden diese Nachricht sehen, die fragt, ob Sie sicher sind:

EC2KeyName: Änderungen an den Optionen der EC2KeyName-Einstellungen werden nicht sofort wirksam. Jede Ihrer bestehenden EC2-Instanzen wird ersetzt und Ihre neuen Einstellungen werden dann wirksam.

Meine Instanz war bereits beendet, als ich dies tat. Sie wurde dann gestartet, beendet und erneut gestartet. Offenbar bedeutet "ersetzen", dass eine Instanz beendet und eine neue erstellt wird. Wenn Sie Ihr Startvolume geändert haben, erstellen Sie zuerst ein AMI und geben Sie dann dieses AMI im gleichen Elastic Beanstalk > Konfiguration > Instanzen-Formular wie die Benutzerdefinierte AMI-ID an. Sie werden auch vor dem Ersetzen der EC2-Instanzen gewarnt.

Nachdem Sie Ihr EC2-Schlüsselpaar und die benutzerdefinierte AMI-ID geändert haben und Warnungen zu beiden gesehen haben, klicken Sie auf Speichern, um fortzufahren.

Vergessen Sie nicht, dass sich die IP-Adresse ändert, wenn die Instanz neu erstellt wird, sodass Sie eine neue IP-Adresse aus der EC2-Konsole abrufen müssen, um eine Verbindung über SSH herzustellen.

2 Stimmen

Dies befindet sich jetzt im Abschnitt "Sicherheit" der Konfiguration.

0 Stimmen

Danke @WillDemaine. Verwende derzeit kein AWS, also verlasse ich mich auf dein Wort und genehmige die Bearbeitung!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X