Kann ich SSH in meine Amazon EC2-Serverinstanz einbinden, wenn ich keine PEM-Datei habe, aus der die Instanz erstellt wurde?

10

Ich arbeite mit einigen Amazon EC2-Servern, die in Betrieb sind, und ich muss SSH in die Server einbinden. Ich habe keine Schlüssel, die beim ersten Einrichten der Server generiert wurden (jemand anderes hat es getan, lange bevor ich hier war). Kann ich trotzdem ohne die Schlüsseldateien auf die Server gelangen?

FWIW Ich habe bisher viele Dinge versucht, um SSH in die Box zu bringen, einschließlich der Generierung neuer Schlüsselpaare im EC2-Dashboard, und nichts scheint zu funktionieren. Dieser Amazon AWS-Supportbeitrag und diese Antwort scheinen darauf hinzudeuten, dass ich kein Glück habe, es sei denn, ich möchte einen AMI von meinem aktuellen Server erstellen und ihn dann zum Instanziieren einer ganz neuen EC2-Serverinstanz verwenden (nur um die PEM-Datei zu generieren zu jener Zeit). Ist das wirklich der einzige Weg, wie ich an diesem Punkt in die Box komme?!

Eric
quelle

Antworten:

26

Kurzum: Ja, das können Sie, aber nicht ohne Arbeit.

Sie müssen Folgendes tun:

(Nehmen Sie für diese Schritte an, dass der Computer, zu dem Sie keine Verbindung herstellen können, Server-01 heißt.)

Machen Sie zunächst einen Schnappschuss Ihres Servers, bevor Sie mit diesen Schritten beginnen.

  1. Starten Sie eine neue temporäre Instanz. Nennen Sie es Server-02.
  2. Stoppen Sie Server-01. Beende es nicht, hör einfach auf.
  3. Trennen Sie das root ( /) EBS-Volume von Server-01 und hängen Sie es beispielsweise wie folgt an Server-02 an /dev/sdb.
  4. Melden Sie sich bei Server-02 an und führen Sie Folgendes aus : $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. Dadurch wird die Root-Partition von Server-01 auf dem (temporären) Server-02 bereitgestellt.
  5. Jetzt sollten Sie in der Lage sein: $ vi /home/<user>/.ssh/authorized_keysund Ihren öffentlichen Schlüssel zu kopieren / einzufügen. Wenn Sie dies getan haben, speichern und schließen Sie die Datei.
  6. Führen Sie $ cd / && umount /mnt/tempnun Folgendes aus, um die Root-Partition von Server-01 von Server-02 zu umounten.
  7. Trennen Sie jetzt einfach die Verbindung zu diesem Volume von Server-02, hängen Sie es wieder an Server-01 an und starten Sie dann Server-01. Wenn es startet, sollten Sie in der Lage sein, wieder einzuschalten.
EEAA
quelle
2
Um diese hervorragende Antwort zu ergänzen, habe ich diesen Blog-Beitrag gefunden, der über die Befehlszeile ausgeführt wird. alestic.com/2011/02/ec2-fix-ebs-root
Eric
1

Nur ein Tipp, bevor jemand die Antwort der EEAA versucht :

Wenn Sie den Befehl iptables saveoder iptables-savezum Speichern Ihrer Konfigurationen nicht ausgeführt haben, starten Sie den Server einfach neu. Unter Berufung auf diese Antwort auf AskUbuntu habe ich erfahren, dass iptablesIhre Konfigurationen im RAM selbst gespeichert werden , sofern Sie sie nicht explizit in den Konfigurationsdateien speichern.

EC2-Instanzen können einfach über das EC2-Dashboard oder neu gestartet werden aws-cli

retr0
quelle
Ähm, es sieht aus wie eine Antwort auf eine andere Frage, die fälschlicherweise hier gestellt wurde. In dieser Frage gibt es nichts über Firewall / Iptables.
Kubanczyk
Meine schlechte Antwort lautet, wenn der gesamte Datenverkehr zu einem Server blockiert wird, wenn alle IP-Adressen blockiert sind. Lassen Sie mich wissen, ob es entfernt werden muss.
Retr0