Wie ändere ich das Schlüsselpaar für meine ec2-Instanz in der AWS-Verwaltungskonsole? Ich kann die Instanz stoppen, ich kann ein neues Schlüsselpaar erstellen, aber ich sehe keinen Link zum Ändern des Schlüsselpaars der Instanz.
amazon-web-services
amazon-ec2
ssh
key-pair
Michael Chen
quelle
quelle
Antworten:
Diese Antwort ist nützlich, wenn Sie keinen SSH-Zugriff mehr auf den vorhandenen Server haben (dh Ihren privaten Schlüssel verloren haben).
Wenn Sie noch SSH-Zugriff haben, verwenden Sie bitte eine der folgenden Antworten.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Folgendes habe ich dank Eric Hammonds Blogpost getan:
/dev/xvda1
Lautstärke ab (nennen wir sie Lautstärke A) - siehe hier/dev/xvdf
(oder/dev/sdf
) an die neue Mikroinstanz an.SSH an die neue Mikroinstanz und mounten Sie Volume A an
/mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Kopieren
~/.ssh/authorized_keys
nach/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
Datei anDas ist es.
quelle
mkdir /mnt/tmp
undmount /dev/xvdf /mnt/tmp
sollte dann den Trick für # 5 machen. Und vergessen Sie nicht, dass Schritt 13 wahrscheinlichrm ~/.ssh/known_hosts
auf Boxen ist, von denen aus Sie eine Verbindung hergestellt haben..ssh/authorized_keys
.Sobald eine Instanz gestartet wurde, gibt es keine Möglichkeit, das der Instanz zugeordnete Schlüsselpaar auf Metadatenebene zu ändern. Sie können jedoch den SSH-Schlüssel ändern, mit dem Sie eine Verbindung zur Instanz herstellen.
Bei den meisten AMIs gibt es einen Startvorgang, bei dem der öffentliche SSH-Schlüssel heruntergeladen und in einer .ssh / autorisierten_keys-Datei installiert wird, sodass Sie als dieser Benutzer mit dem entsprechenden privaten SSH-Schlüssel SSH eingeben können.
Wenn Sie ändern möchten, mit welchem SSH-Schlüssel Sie auf eine Instanz zugreifen, müssen Sie die Datei "authorized_keys" auf der Instanz selbst bearbeiten und in Ihren neuen öffentlichen SSH-Schlüssel konvertieren.
Die Datei authorized_keys befindet sich im Unterverzeichnis .ssh im Ausgangsverzeichnis des Benutzers, unter dem Sie sich anmelden. Abhängig von dem AMI, das Sie ausführen, kann es sich um Folgendes handeln:
Verwenden Sie nach dem Bearbeiten einer Datei "authorized_keys" immer eine andere Terminal, um zu bestätigen, dass Sie in die Instanz ssh können, bevor Sie die Verbindung zu der Sitzung trennen, mit der Sie die Datei bearbeiten. Sie möchten keinen Fehler machen und sich vollständig aus der Instanz ausschließen.
Während Sie über SSH-Schlüsselpaare auf EC2 nachdenken, empfehle ich, Ihren persönlichen öffentlichen SSH-Schlüssel auf EC2 hochzuladen, anstatt Amazon das Schlüsselpaar für Sie generieren zu lassen.
Hier ist ein Artikel, den ich darüber geschrieben habe:
Dies gilt nur für neue Instanzen, die Sie ausführen.
quelle
.pem
auf meinem Mac erhalten,ssh -i key.pem
authentifiziere mich jedoch nicht (Berechtigung verweigert (öffentlicher Schlüssel)). In der EC2-Verwaltungskonsole unter Schlüsselpaarname wird nichts aufgelistet. Das ist alarmierend für mich. Wie kann ich das einstellen? Basierend auf der Verwaltungskonsole wird angezeigt, dass der Instanz keine von mir konfigurierten Schlüsselpaare zugewiesen wurden!Führen Sie diesen Befehl aus, nachdem Sie Ihr AWS-PEM heruntergeladen haben.
Dann sichern Sie die Ausgabe in
authorized_keys
.Oder kopieren Sie die PEM-Datei in Ihre AWS-Instanz und führen Sie die folgenden Befehle aus
und dann
quelle
Anleitung vom AWS EC2-Support:
Hinweis - Sie müssen den Inhalt als eine Zeile kopieren - alle neuen Zeilen löschen
Dadurch wird die aktualisierte Datei authorized_keys gespeichert
Versuchen Sie nun, mit Ihrem neuen Schlüssel pai eine neue SSH-Sitzung für Ihre Instanz zu öffnen
Wenn Sie bestätigt haben, dass Sie mit dem neuen Schlüsselpaar SSH in die Instanz einbinden können, können Sie vi .ssh / authorized_key und den alten Schlüssel löschen.
Antwort auf Shaggies Bemerkung:
Wenn Sie keine Verbindung zur Instanz herstellen können (z. B. der Schlüssel ist beschädigt), trennen Sie das Volume über die AWS-Konsole ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html) ) und ordnen Sie es wieder der Arbeitsinstanz zu, dann ändern Sie den Schlüssel auf dem Volume und verbinden Sie es wieder mit der vorherigen Instanz.
quelle
Ich bemerkte , dass , wenn sie von Elastic Beanstalk verwaltet, Sie können Ihr aktives EC2 - Schlüsselpaar ändern. Wählen Sie unter Elastic Beanstalk> Konfiguration> Sicherheit den neuen Schlüssel aus der Dropdown- Liste EC2-Schlüsselpaar aus. In dieser Meldung werden Sie gefragt, ob Sie sicher sind:
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 eine AMI und geben Sie diese AMI im selben Formular für Elastic Beanstalk> Konfiguration> Instanzen wie die benutzerdefinierte AMI-ID an . 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.
quelle
Ich habe diesen Ansatz durchlaufen und konnte ihn nach einiger Zeit zum Laufen bringen. Das Fehlen tatsächlicher Befehle machte es schwierig, aber ich fand es heraus. JEDOCH - viel einfacher Ansatz wurde gefunden und kurz danach getestet:
quelle
Wenn die folgenden Schritte ausgeführt werden, wird viel Zeit gespart und die laufende Instanz muss nicht gestoppt werden.
Das ist es. Viel Spaß :)
quelle
Ich glaube, der einfachste Ansatz ist:
quelle
Wenn Sie die ElasticBeanstalk-Plattform verwenden, können Sie die Schlüssel folgendermaßen ändern:
Dadurch wird die aktuelle Instanz beendet und eine neue mit ausgewählten Schlüsseln / Einstellungen erstellt.
quelle
In dieser Frage werden zwei Szenarien gestellt:
1) Sie haben keinen Zugriff auf die PEM-Datei , deshalb möchten Sie eine neue erstellen.
2) Sie haben die. PEM-Dateizugriff mit Ihnen, aber Sie möchten nur eine neue PEM-Datei für ändern oder erstellen Sicherheitsgründen oder aus Sicherheitsgründen .
Also , wenn Sie Ihre Schlüssel verloren haben, können Sie blättern und andere Antworten sehen . Aber wenn Sie einfach nur Ihre .pem - Datei aus Sicherheitsgründen ändern Sie folgende Schritte: -
Datei und entfernen oder ändern Sie die vorherige RSA von hier.
Hinweis: - Vorsichtig entfernen, damit neu erstellte RSA nicht geändert werden.
Auf diese Weise können Sie die neue PEM-Datei ändern / mit Ihrer laufenden Instanz verbinden.
Sie können den Zugriff auf zuvor generierte PEM-Dateien aus Sicherheitsgründen widerrufen.
Hoffe es würde helfen!
quelle
Die einfachste Lösung besteht darin, den Inhalt von zu kopieren
in die autorisierten_Tasten Ihrer AWS-Instanz unter
Auf diese Weise können Sie in die EC2-Instanz ssh, ohne eine pem-Datei für den Befehl ssh anzugeben. Sie können alle anderen Schlüssel entfernen, sobald Sie die Verbindung getestet haben.
Wenn Sie einen neuen Schlüssel erstellen müssen, um ihn für andere Personen freizugeben, können Sie dies tun mit:
Dadurch wird die private key.pem-Datei erstellt, und Sie können den öffentlichen Schlüssel davon abrufen mit:
Jeder, der private_key.pem hat, kann sich mit verbinden
quelle
~/.ssh/authorized_keys
wenn ich nicht einmal eine SSH-aws-Instanz kann?Sie müssen das Root-Gerät nicht drehen und den öffentlichen SSH-Schlüssel ändern
authorized_keys
. Dafür können Benutzerdaten verwendet werden, um Ihnen SSH-Schlüssel zu jeder Instanz hinzuzufügen. Dazu müssen Sie zuerst ein neues KeyPair mit der AWS-Konsole oder über ssh-keygen erstellen.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.
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 .
quelle
Warnung: Vergessen Sie nicht, die Benutzerdaten erneut zu löschen. Andernfalls wird diese Taste bei jedem Instanzstart gedrückt. Schritt-für-Schritt-Anleitung .
quelle
Ich habe die folgenden Schritte ausprobiert und es hat funktioniert, ohne die Instanz zu stoppen. Meine Anforderung war: Da ich meinen Client-Computer geändert habe, konnte ich mich aufgrund der alten PEM-Datei nicht bei der ec2-Instanz anmelden.
Sie werden Ihre alten Schlüssel in dieser Datei sehen.
ssh-keygen -f YOUR_PEM_FILE.pem -y Es wird ein Schlüssel generiert. Hängen Sie den Schlüssel an ~ / .ssh / authorized_keys an, die in Schritt 1 geöffnet wurden. 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 es in die alte PEM-Datei um - Grund dafür ist, dass die alte PEM-Datei weiterhin der ec2-Instanz in AWS zugeordnet ist.
Alles erledigt.
Ich kann mich von meinem neuen Client-Computer aus bei AWS ec2 anmelden.
quelle
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 Systemmanager konzentrieren.
Systems Manager
Automation
der linken Seite.Execute Automation
AWSSupport-TroubleshootSSH
(normalerweise auf der letzten Seite)Weitere Informationen finden Sie in der offiziellen AWS-Dokumentation
quelle
Die Antwort von Yegor256 hat bei mir funktioniert, aber ich dachte, ich würde nur einige Kommentare hinzufügen, um denjenigen zu helfen, die nicht so gut Laufwerke montieren können (wie ich!):
Amazon gibt Ihnen die Wahl, wie Sie das Volume benennen möchten, wenn Sie es anhängen. 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.
Also habe ich / dev / sdp als Namen für den Mount-Namen in AWS ausgewählt, mich dann beim Server angemeldet und festgestellt, dass Ubuntu mein Volume in / dev / xvdp1 umbenannt hat. Ich musste dann das Laufwerk montieren - für mich musste ich es so machen:
Nachdem ich durch all diese Reifen gesprungen war, konnte ich unter / mnt / tmp auf meine Dateien zugreifen
quelle
Dies funktioniert nur, wenn Sie Zugriff auf die Instanz haben, in der Sie den Schlüssel ändern / hinzufügen 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 auf Ihrer Instanz einfügen.
vim .ssh / autorisierte_Tasten
Jetzt können Sie den privaten Schlüssel für dieses Paar verwenden und sich anmelden.
Hoffe das hilft.
quelle
Mein Problem war, ich habe es
IP
eher mit als mit der Öffentlichkeit versuchtDNS
. Dann habe ich es mit versuchtpublic DNS
und es ist gelöstquelle
Wenn Sie sich nicht bei VM anmelden und Ihre SSH-Schlüssel löschen können, können Sie das Schlüsselpaar Ihres ec2 auch mithilfe der folgenden Schritte ändern. Schritt für Schritt 1) Stoppen Sie Ihre ec2-Instanz. 2) Machen Sie einen Schnappschuss von VM und Speicher. 3) Erstellen Sie eine neue VM, während Sie sie erstellen. Wählen Sie Ihren Snapshot aus und erstellen Sie eine VM aus Ihrem Snapshot. 4) während die Erstellung der VM Ihr Schlüsselpaar herunterlädt. 5) Sobald Ihre VM UP ist, können Sie mit einem neuen Schlüsselpaar ssh und Ihre Daten werden auch zurück.
quelle
Was du tun kannst...
Erstellen Sie ein neues Instanzprofil / eine neue Instanzrolle, an die die AmazonEC2RoleForSSM-Richtlinie angehängt ist.
Hängen Sie dieses Instanzprofil an die Instanz an.
quelle
Danke für die Tipps Jungs. Ich werde sie auf jeden Fall im Auge behalten, wenn ich die Schlüsselpaare ausruhen muss. Im Interesse von Effizienz und Faulheit habe ich mir jedoch noch etwas anderes ausgedacht:
Ich hoffe, dies kann Ihnen von Nutzen sein und Ihnen Zeit sparen sowie die Menge an weißem Haar minimieren, die Sie durch solche Dinge erhalten :)
quelle