Czy mogę SSH do mojej instancji serwera Amazon EC2, jeśli nie mam pliku .pem od momentu utworzenia instancji?

10

Pracuję z niektórymi serwerami Amazon EC2, które są uruchomione i muszę SSH do serwerów. Nie mam żadnych kluczy, które zostały wygenerowane podczas pierwszej konfiguracji serwerów (ktoś inny zrobił to na długo przed moim przybyciem). Czy nadal mogę dostać się na serwery bez plików kluczy?

FWIW Próbowałem do SSH wielu rzeczy do tej pory, w tym generowania nowych par kluczy w desce rozdzielczej EC2, i wydaje się, że nic nie działa. Ten post wsparcia Amazon AWS i ta odpowiedź wydają się wskazywać, że nie mam szczęścia, chyba że chcę utworzyć AMI mojego bieżącego serwera, a następnie użyć go do utworzenia nowej instancji serwera EC2 (tylko w celu wygenerowania pliku .pem w tym czasie). Czy to naprawdę jedyny sposób, aby w tym momencie dostać się do pudełka ?!

Eric
źródło

Odpowiedzi:

26

W skrócie: Tak, możesz, ale nie bez pracy.

Musisz wykonać następujące czynności:

(W przypadku tych kroków załóż, że komputer, z którym masz problemy z połączeniem, nazywa się serwer-01).

Najpierw, przed rozpoczęciem tych kroków, zrób migawkę swojego serwera.

  1. Uruchom nową, tymczasową instancję. Nazwij to serwer-02.
  2. Zatrzymaj serwer-01. Nie przerywaj go, po prostu przestań.
  3. /Odłącz wolumin root ( ) EBS z serwera-01 i dołącz go do serwera-02, jak powiedzmy /dev/sdb.
  4. Zaloguj się na serwerze-02 i uruchomić: $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. Spowoduje to zamontowanie partycji głównej serwera-01 na (tymczasowym) serwerze-02.
  5. Teraz powinieneś być w stanie: $ vi /home/<user>/.ssh/authorized_keysi skopiować / wkleić swój klucz publiczny. Gdy to zrobisz, zapisz i zamknij plik.
  6. Teraz uruchom: $ cd / && umount /mnt/tempumount partycji root serwera-01 z serwera-02.
  7. Teraz po prostu odłącz ten wolumin z serwera-02, podłącz go z powrotem do serwera-01, a następnie uruchom serwer-01. Kiedy się uruchomi, powinieneś mieć możliwość ponownego włączenia ssh.
EEAA
źródło
2
Aby dodać do tej doskonałej odpowiedzi, znalazłem ten post na blogu, który prowadzi go z wiersza poleceń. alestic.com/2011/02/ec2-fix-ebs-root
Eric
0

Tylko wskazówka, zanim ktokolwiek spróbuje odpowiedzieć EEAA ,

Jeśli nie uruchomiłeś polecenia iptables savelub, iptables-saveaby zapisać konfiguracje, po prostu zrestartuj serwer. Powołując się na tę odpowiedź na AskUbuntu , dowiedziałem się, że iptableszapisuje twoje konfiguracje w samej pamięci RAM, chyba że wyraźnie zapisujesz ją w plikach konfiguracyjnych.

Instancje EC2 można łatwo ponownie uruchomić z pulpitu nawigacyjnego EC2 lub aws-cli

retr0
źródło
Umm, wygląda to na odpowiedź na inne pytanie omyłkowo wysłane tutaj. W tym pytaniu nie ma nic o firewall / iptables.
kubańczyk
Moja zła, ta odpowiedź dotyczy sytuacji, gdy cały ruch zostaje zablokowany na serwerze, jeśli wszystkie adresy IP są zablokowane. Daj mi znać, jeśli trzeba go zdjąć.
retr0