it-swarm.com.de

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

Wie ändere ich das Schlüsselpaar für meine ec2-Instanz in der AWS Management Console? Ich kann die Instanz stoppen, ich kann ein neues Schlüsselpaar erstellen, aber ich sehe keinen Link, um das Schlüsselpaar der Instanz zu ändern.

322
Michael Chen

Führen Sie einfach Folgendes aus: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Das habe ich dank Eric Hammonds Blogpost getan:

  1. Stoppen Sie die laufende EC2-Instanz
  2. Trennen Sie das /dev/xvda1-Volume (nennen wir es Volume A) - siehe hier
  3. Starten Sie die neue t1.micro EC2-Instanz mit meinem neuen Schlüsselpaar. Stellen Sie sicher, dass Sie es in demselben Subnetz erstellen. Andernfalls müssen Sie die Instanz beenden und erneut erstellen. - siehe hier
  4. Fügen Sie der neuen Mikroinstanz Datenträger A als /dev/xvdf (oder /dev/sdf) hinzu.
  5. SSH für die neue Mikroinstanz und Mounten von Volume A an /mnt/tmp

    $ Sudo mount/dev/xvdf1/mnt/tmp

  6. ~/.ssh/authorized_keys in /mnt/tmp/home/ubuntu/.ssh/authorized_keys kopieren

  7. Ausloggen
  8. Mikroinstanz beenden
  9. Trennen Sie den Datenträger A davon
  10. Fügen Sie Volume A als /dev/xvda wieder der Hauptinstanz hinzu.
  11. Starten Sie die Hauptinstanz
  12. Melden Sie sich wie zuvor mit Ihrer neuen .pem-Datei an

Das ist es.

411
yegor256

Nachdem eine Instanz gestartet wurde, ist es nicht möglich, das mit der Instanz verknüpfte Schlüsselpaar auf Metadatenebene zu ändern. Sie können jedoch ändern, mit welchem ​​SSH-Schlüssel Sie eine Verbindung zur Instanz herstellen.

Bei den meisten AMIs gibt es einen Startvorgang, der den öffentlichen SSH-Schlüssel herunterlädt und in einer .ssh/Authorized_keys -Datei installiert, so dass Sie als Benutzer dieses Benutzers mit dem entsprechenden privaten SSH-Schlüssel ssh verwenden können.

Wenn Sie den von Ihnen verwendeten SSH-Schlüssel für den Zugriff auf eine Instanz ändern möchten, müssen Sie die Datei "Authorized_keys" in der Instanz selbst bearbeiten und in Ihren neuen öffentlichen SSH-Schlüssel konvertieren.

Die Datei authorized_keys befindet sich im Unterverzeichnis .ssh im Basisverzeichnis des Benutzers, unter dem Sie sich anmelden. Je nach AMI, das Sie ausführen, kann es sich um Folgendes handeln:

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

Verwenden Sie nach der Bearbeitung einer authorisierten_keys-Datei immer ein different - Terminal, um zu bestätigen, dass Sie in die Instanz wechseln können, bevor Sie die Verbindung zur Sitzung trennen, die Sie zum Bearbeiten der Datei verwenden. Sie möchten keinen Fehler machen und sich vollständig aus der Instanz ausschließen.

Wenn Sie über ECS-Schlüsselpaare nachdenken, empfehle ich Ihnen, Ihren eigenen öffentlichen SSH-Schlüssel auf EC2 hochzuladen, anstatt dass Amazon das Schlüsselpaar für Sie generiert.

Hier ist ein Artikel, den ich darüber geschrieben habe:

Hochladen persönlicher SSH-Schlüssel auf Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

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

163
Eric Hammond

Führen Sie diesen Befehl aus, nachdem Sie Ihr AWS-Pem heruntergeladen haben. 

ssh-keygen -f YOURKEY.pem -y

Dann die Ausgabe in authorized_keys ausgeben.

Oder kopieren Sie die Pem-Datei in 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
67
Pat Mcb

Anweisungen von der AWS EC2-Unterstützung:

  1. PEM-Login ändern
  2. gehen Sie zu Ihrer EC2-Konsole
  3. Klicken Sie unter NETWORK & SECURITY auf Key Pair. Klicken Sie auf Create Key Pair
  4. Geben Sie Ihrem neuen Schlüsselpaar einen Namen, und speichern Sie die PEM-Datei. Der Name des Schlüsselpaars Wird verwendet, um eine Verbindung zu Ihrer Instanz herzustellen
  5. Stellen Sie eine SSH-Verbindung zu Ihrer Instanz her und halten Sie sie offen
  6. klicken Sie in PuttyGen auf "Laden", um Ihre PEM-Datei zu laden
  7. Halten Sie das Optionsfeld SSH-2 RSA aktiviert. Klicken Sie auf "Privaten Schlüssel speichern" Sie erhalten eine Warnung im Popup-Fenster. 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 in Ihre aktuelle Instanz kopieren
  9. Speichern Sie den öffentlichen Schlüssel mit dem neuen Schlüsselpaarnamen und mit der Erweiterung Erweiterung .pub
  10. Öffnen Sie den Inhalt des öffentlichen Schlüssels in einem Notizblock
  11. kopieren Sie den Inhalt unter "Kommentar:" importierter-openssh-key "und vor " ---- ENDE SSH2 PUBLIC KEY ----
    Hinweis - Sie müssen den Inhalt kopieren als eine Zeile - alle neuen Zeilen löschen
  12. Öffnen Sie in Ihrer verbundenen Instanz die Datei "authorized_keys" mit das Werkzeug vi. Führen Sie den folgenden Befehl aus: vi .ssh/authorised_keys Sie sollten auch den ursprünglichen öffentlichen Schlüssel in der Datei sehen
  13. bewegen Sie den Cursor auf die Datei an das Ende Ihres ersten öffentlichen Schlüssels Inhalt: Geben Sie "i" für Einfügung ein
  14. geben Sie in der neuen Zeile "ssh-rsa" ein und fügen Sie ein Leerzeichen ein, bevor Sie .__ einfügen. der Inhalt des öffentlichen Schlüssels, das Leerzeichen und der Name des .pem Datei (ohne .pem) Hinweis - Sie sollten eine Zeile mit demselben Format wie die vorherige Zeile erhalten
  15. drücken Sie die Esc-Taste und geben Sie dann ein: wq!

dadurch wird die aktualisierte Authorized_keys-Datei gespeichert

versuchen Sie jetzt, eine neue SSH-Sitzung für Ihre Instanz mit Ihrem neuen Schlüsselpaar zu öffnen

Wenn Sie sich vergewissert haben, dass Sie mit dem neuen Schlüsselpaar SSH in die Instanz einfügen können, können Sie .ssh/authorised_key und den alten Schlüssel löschen.

Antwort auf Shaggie-Bemerkung:

Wenn Sie keine Verbindung zur Instanz herstellen können (z. B. ist der Schlüssel beschädigt), trennen Sie das Volume mit der AWS-Konsole ( http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume) .html ) und fügen Sie es erneut zur Arbeitsinstanz hinzu, ändern Sie dann den Schlüssel auf dem Volume und fügen Sie es wieder zur vorherigen Instanz hinzu.

46
Elia Weiss

Ich habe festgestellt, dass Sie Ihr aktives EC2-Schlüsselpaar ändern können , wenn es von Elastic Beanstalk verwaltet wird. Wählen Sie unter Elastic Beanstalk> Configuration> Security den neuen Schlüssel aus der Dropdown-Liste EC2-Schlüsselpaar aus. In dieser Nachricht werden Sie gefragt, ob Sie sicher sind:

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

Meine Instanz wurde bereits beendet, als ich dies tat. Es wurde dann gestartet, beendet und erneut gestartet. Anscheinend bedeutet "Ersetzen" das Beenden und Erstellen einer neuen Instanz. Wenn Sie Ihr Startvolume geändert haben, erstellen Sie zuerst einen AMI und geben Sie diesen AMI im selben Formular Elastic Beanstalk> Configuration> Instances an wie Custom AMI ID. Dies warnt auch vor dem Ersetzen der EC2-Instanzen.

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

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

35
Mark Berry

Ich ging diesen Ansatz durch und konnte es nach einiger Zeit zum Laufen bringen. Das Fehlen tatsächlicher Befehle machte es schwierig, aber ich habe es herausgefunden. JEDOCH wurde jedoch ein viel einfacherer Ansatz gefunden und getestet: 

  1. Speichern Sie Ihre Instanz als AMI (Neustart oder nicht, ich empfehle einen Neustart). Dies funktioniert nur, wenn EBS unterstützt wird. 
  2. Starten Sie dann einfach eine Instanz von diesem AMI und weisen Sie Ihr neues Keyfile zu. 
  3. Bewegen Sie sich über Ihre elastische IP-Adresse (falls zutreffend) zu Ihrer neuen Instanz, und Sie sind fertig. 
27
OldGreg

Wenn die folgenden Schritte befolgt werden, spart dies viel Zeit und die laufende Instanz muss nicht gestoppt werden.

  1. Starten Sie die neue t1.micro EC2-Instanz mit einem neuen Schlüsselpaar. Stellen Sie sicher, dass Sie es in demselben Subnetz erstellen , andernfalls müssen Sie die Instanz beenden und erneut erstellen.
  2. SSH an die neue Mikroinstanz und kopiere den Inhalt von ~/.ssh/authorised_keys irgendwo auf Ihrem Computer.
  3. Melden Sie sich mit alter ssh-Schlüssel an der Hauptinstanz an.
  4. Kopieren und ersetzen Sie den Dateiinhalt von Punkt 2 nach ~/.ssh/authorised_keys
  5. Jetzt können Sie sich nur noch mit neuem Schlüssel anmelden. Der alte Schlüssel funktioniert nicht mehr. 

Das ist es. Genießen :)

13
vinay saini

Falls Sie die ElasticBeanstalk-Plattform verwenden, können Sie die Schlüssel wie folgt ändern:

  • Elastische Beanstalk-Platte
  • Aufbau
  • Instanzen (Zahn oben rechts)
  • EC2-Schlüsselpaar

Dadurch wird die aktuelle Instanz beendet und eine neue Instanz mit den ausgewählten Tasten/Einstellungen erstellt.

8
Vaelyr

Ich glaube, der einfachste Ansatz ist:

  1. Starten Sie eine neue EC2-Instanz mit einem AMI-Image (ab Schritt 1) ​​mit einem neuen Schlüsselpaar.
  2. Melden Sie sich mit einem neuen Schlüssel bei der neuen EC2-Instanz an.
  3. Login to new EC2 instance with new key.
5
Sergey

Die einfachste Lösung besteht darin, den Inhalt von zu kopieren

~/.ssh/id_rsa.pub

in die Authorized_keys Ihrer AWS-Instanz unter

~/.ssh/authorized_keys

Dadurch können Sie ssh in die EC2-Instanz einbinden, ohne eine Pem-Datei für den Befehl ssh anzugeben. Sie können alle anderen Schlüssel entfernen, sobald Sie die Verbindung mit dem Schlüssel getestet haben.

Wenn Sie einen neuen Schlüssel erstellen müssen, um ihn mit einer anderen Person zu teilen, können Sie dies mit folgendem tun:

ssh-keygen -t rsa

dadurch wird die private key.pem-Datei erstellt, und Sie können den öffentlichen Schlüssel davon erhalten mit:

ssh-keygen -f private_key.pem -y > public_key.pub

Jeder, der private_key.pem hat, kann sich mit verbinden

ssh [email protected] -i private_key.pem
4
snez

Sie müssen das Root-Gerät nicht drehen und den öffentlichen SSH-Schlüssel in authorized_keys ändern. Dafür können Sie mithilfe von Benutzerdaten SSH-Schlüssel zu jeder Instanz hinzufügen. Dazu müssen Sie zuerst ein neues KeyPair mit der AWS-Konsole oder über ssh-keygen erstellen.

ssh-keygen -f YOURKEY.pem -y

Dadurch wird ein öffentlicher Schlüssel für Ihr neues SSH-Schlüsselpaar generiert. Kopieren Sie diesen öffentlichen Schlüssel und verwenden Sie ihn im folgenden Skript.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

Nach dem Neustart verfügt der Computer über den angegebenen SSH-Veröffentlichungsschlüssel. Entfernen Sie die Benutzerdaten nach dem ersten Neustart. Lesen Sie mehr über Benutzerdaten beim Start .

3
Hardeep Singh

Ich habe die folgenden Schritte ausprobiert und es hat funktioniert, ohne die Instanz anzuhalten. Meine Forderung lautete: Da ich meinen Client-Computer geändert habe, erlaubte mir die alte .pem-Datei nicht, mich bei der ec2-Instanz anzumelden. 

  1. Melden Sie sich mit Ihrer alten PEM-Datei von der alten Maschine bei der ec2-Instanz an. Öffnen Sie ~/.ssh/authorised_keys 

Sie sehen Ihre alten Schlüssel in dieser Datei.

  1. ssh-keygen -f YOUR_PEM_FILE.pem -yEs wird ein Schlüssel generiert. Hängen Sie den Schlüssel an ~/.ssh/authorised_keys an, das in Schritt 1 geöffnet wurde. Der alte Schlüssel muss nicht gelöscht werden.

  2. Erstellen Sie in der AWS-Konsole ein neues Schlüsselpaar. Speichern Sie es in Ihrer neuen Maschine. Benennen Sie sie in die alte PEM-Datei um. Grund dafür ist, dass die alte PEM-Datei immer noch mit der ec2-Instanz in AWS verbunden ist. 

Alles erledigt.

Ich kann mich von meinem neuen Clientcomputer aus bei AWS ec2 anmelden.

2
Mr. Bordoloi

Die Antwort von Yegor256 funktionierte für mich, aber ich dachte, ich würde nur ein paar Kommentare hinzufügen, um denen zu helfen, die nicht so gut darin sind, Laufwerke zu montieren (wie ich!):

Bei Amazon können Sie auswählen, wie Sie das Volume beim Anhängen benennen möchten. Sie haben einen Namen im Bereich von/dev/sda - /dev/sdp.__ verwendet. Die neueren Versionen von Ubuntu benennen dann das, was Sie dort eingegeben haben, in/dev/xvd (x) oder etwas in diesem Sinne um. 

Für mich wählte ich/dev/sdp als Namen des Mount-Namens in AWS, loggte mich dann beim Server ein und stellte fest, dass Ubuntu mein Volume in/dev/xvdp1 umbenannt hatte. Ich musste dann das Laufwerk montieren - für mich musste ich es so machen:

mount -t ext4 xvdp1 /mnt/tmp

Nachdem ich durch all diese Reifen gesprungen bin, konnte ich auf meine Dateien unter/mnt/tmp zugreifen

1
Ryan

Mein Problem war, ich habe es mit IP versucht und nicht mit DNS. Dann habe ich es mit public DNS versucht und es ist gelöst

0
vipin cp

Sie haben mehrere Möglichkeiten, den Schlüssel Ihrer EC2-Instanz zu ersetzen. 

  1. Sie können den Schlüssel manuell in der Datei .ssh/authorised_keys ersetzen. Dies setzt jedoch voraus, dass Sie tatsächlich auf die Instanz oder das Volume zugreifen können, wenn dies unverschlüsselt ist.
  2. Sie können den AWS Systems Manager verwenden. Dazu muss ein Agent installiert sein.

Da die erste Option leicht in den Antworten oder in der Suchmaschine Ihrer Wahl zu finden ist, möchte ich mich auf den Systems Manager konzentrieren.

  1. Öffnen Sie den Service Systems Manager
  2. Klicken Sie links auf Automation
  3. Klicken Sie auf Execute Automation 
  4. AWSSupport-TroubleshootSSH auswählen (normalerweise auf der letzten Seite)

Weitere Informationen finden Sie in der Offizielle AWS-Dokumentation

0
Hendric

wenn Sie sich nicht bei VM anmelden können und Ihre SSH-Schlüssel gelöscht haben, können Sie auch das Schlüsselpaar Ihres ec2 wie folgt ändern. Schritt für Schritt 1) ​​Stoppen Sie Ihre ec2-Instanz. 2) Machen Sie einen Schnappschuss von VM und dem Speicher. 3) Erstellen Sie ein neues VM, während Sie es erstellen. Wählen Sie Ihren Schnappschuss aus und erstellen Sie VM aus Ihrem Schnappschuss. 4) Während die Erstellung von VM Ihr Schlüsselpaar herunterlädt. 5) Sobald Ihr VM UP ist, können Sie mit einem neuen Schlüsselpaar ssh und Ihre Daten werden auch zurück.

0

Dies funktioniert nur, wenn Sie Zugriff auf die Instanz haben, in der Sie den Schlüssel ändern möchten. Sie können ein neues Schlüsselpaar erstellen. Wenn Sie bereits über das Schlüsselpaar verfügen, können Sie den öffentlichen Schlüssel des neuen Paares in die Datei authorized_keys Ihrer Instanz einfügen.

vim .ssh/authorized_keys

Jetzt können Sie den privaten Schlüssel für dieses Paar verwenden und sich anmelden.

Hoffe das hilft.

0
skd