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

10voto

snez Punkte 2284

Die einfachste Lösung besteht darin, den Inhalt von

~/.ssh/id_rsa.pub

in die authorized_keys Ihres AWS-Instances unter

~/.ssh/authorized_keys

einzufügen. Dadurch können Sie auf die EC2-Instanz über SSH zugreifen, ohne eine pem-Datei für den SSH-Befehl angeben zu müssen. Sobald Sie die Verbindung getestet haben, können Sie alle anderen Schlüssel entfernen.

Wenn Sie einen neuen Schlüssel erstellen müssen, um ihn mit jemand anderem zu teilen, können Sie dies mit dem Befehl durchführen:

ssh-keygen -t rsa

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

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

Alle, die private_key.pem haben, können sich mit

ssh user@host.com -i private_key.pem

6 Stimmen

Wie kann ich auf ~/.ssh/authorized_keys zugreifen, wenn ich nicht einmal auf die AWS-Instanz SSH kann?

3 Stimmen

Ich glaube, Ihre letzte Zeile ist falsch, Sie werden nur dann eine Verbindung herstellen können, wenn Sie den privaten Schlüssel haben. ssh -i private_key.pem user@host.com. Wenn Sie möchten, dass jemand Ihnen Zugriff auf ihre Instanz gewährt, können Sie sicher Ihren öffentlichen Schlüssel mit ihnen teilen und sie können ihn zu ihren autorisierten Schlüsseln hinzufügen, um Ihnen Zugriff auf die Instanz als diesen Benutzer zu gewähren...

10voto

Vaelyr Punkte 2510

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

  • Elastic Beanstalk-Panel
  • Konfiguration
  • Instanzen (Zahnrad oben rechts)
  • EC2-Schlüsselpaar

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

2 Stimmen

Dies ist zweifellos die einfachste Antwort hier, vorausgesetzt, Sie verwenden ElasticBeanstalk.

2 Stimmen

Achtung ! Dies ist eine gefährliche Lösung. Der AWS wird auch den Speicher (d.h. virtuelle Festplatte) zurücksetzen, die an diese Instanz angeschlossen ist (!!). Daher müssen Sie den Speicher abhängen und, nachdem Sie eine neue Instanz erstellt haben, ihn erneut anstatt des neuen anhängen, der mit der neuen Instanz geliefert wurde. Natürlich ist es am besten, wenn es sich nicht um ein verschlüsseltes Volume handelt (und Sie den Schlüssel nicht verloren haben..)

6voto

Hardeep Singh Punkte 1254

Sie müssen das Root-Gerät nicht drehen und den SSH-Public Key in authorized_keys ändern. Dafür können Sie den Benutzerdaten nutzen, um Ihre SSH-Schlüssel zu jedem Instanz hinzuzufügen. Dafür müssen Sie zunächst ein neues KeyPair erstellen, entweder über die AWS-Konsole oder mit ssh-keygen.

ssh-keygen -f YOURKEY.pem -y

Dadurch wird der öffentliche Schlüssel für Ihr neues SSH-KeyPair 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 wird die Maschine über den angegebenen SSH-Public-Key verfügen. Entfernen Sie die Benutzerdaten nach dem ersten Neustart. Erfahren Sie mehr über Benutzerdaten beim Starten.

3voto

Mr. Bordoloi Punkte 80

Ich habe die folgenden Schritte ausprobiert und es hat funktioniert, ohne die Instanz anzuhalten. Mein Anliegen war, dass der alte .pem-Datei mir das Einloggen auf die ec2-Instanz nicht erlaubte, da ich meine Client-Maschine geändert hatte.

  1. Melden Sie sich auf der ec2-Instanz mit Ihrer alten .pem-Datei von der alten Maschine an. Öffnen Sie ~/.ssh/authorized_keys

Sie sehen Ihre alten Schlüssel in dieser Datei.

  1. ssh-keygen -f IHRE_PEM_DATEI.pem -y Es wird einen Schlüssel generieren. Hängen Sie den Schlüssel an ~/.ssh/authorized_keys an, der in Schritt 1 geöffnet wurde. Es ist nicht erforderlich, den alten Schlüssel zu löschen.

  2. Von der AWS-Konsole aus erstellen Sie ein neues Schlüsselpaar. Speichern Sie es auf Ihrer neuen Maschine. Benennen Sie es um in die alte pem-Datei - der Grund ist, dass die alte pem-Datei immer noch mit der ec2-Instanz in AWS verbunden ist.

Alles erledigt.

Ich kann mich von meiner neuen Client-Maschine bei AWS ec2 einloggen.

3voto

Hendric Punkte 101

Sie haben mehrere Optionen, um den Schlüssel Ihres EC2-Instances zu ersetzen.

  1. Sie können den Schlüssel manuell in der .ssh/authorized_keys-Datei ersetzen. Dies erfordert jedoch, dass Sie tatsächlich Zugriff auf die Instanz oder das Volume haben, wenn es unverschlüsselt ist.
  2. Sie können den AWS Systems Manager verwenden. Dies erfordert die Installation eines Agents.

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 Dienst Systems Manager
  2. Klicken Sie auf der linken Seite auf Automation.
  3. Klicken Sie auf Automation ausführen
  4. Wählen Sie AWSSupport-TroubleshootSSH aus (normalerweise auf der letzten Seite)

Weitere Informationen finden Sie in der Offiziellen AWS-Dokumentation

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