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.
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:
/dev/xvda1
-Volume (nennen wir es Volume A) - siehe hier/dev/xvdf
(oder /dev/sdf
) hinzu.SSH für die neue Mikroinstanz und Mounten von Volume A an /mnt/tmp
$ Sudo mount/dev/xvdf1/mnt/tmp
~/.ssh/authorized_keys
in /mnt/tmp/home/ubuntu/.ssh/authorized_keys
kopieren
/dev/xvda
wieder der Hauptinstanz hinzu..pem
-Datei anDas ist es.
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.
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
Anweisungen von der AWS EC2-Unterstützung:
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.
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.
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:
Wenn die folgenden Schritte befolgt werden, spart dies viel Zeit und die laufende Instanz muss nicht gestoppt werden.
Das ist es. Genießen :)
Falls Sie die ElasticBeanstalk-Plattform verwenden, können Sie die Schlüssel wie folgt ändern:
Dadurch wird die aktuelle Instanz beendet und eine neue Instanz mit den ausgewählten Tasten/Einstellungen erstellt.
Ich glaube, der einfachste Ansatz ist:
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
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 .
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.
Sie sehen Ihre alten Schlüssel in dieser Datei.
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.
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.
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
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
Sie haben mehrere Möglichkeiten, den Schlüssel Ihrer EC2-Instanz zu ersetzen.
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.
Systems Manager
Automation
. Execute Automation
AWSSupport-TroubleshootSSH
auswählen (normalerweise auf der letzten Seite)Weitere Informationen finden Sie in der Offizielle AWS-Dokumentation
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.
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.