Dostałem dostęp do konsoli AWS do konta z uruchomionymi 2 instancjami, których nie mogę zamknąć (w trakcie produkcji). Chciałbym jednak uzyskać dostęp SSH do tych instancji, czy można utworzyć nowy Keypair i zastosować go do instancji, aby móc włączyć SSH? Uzyskanie istniejącego pliku pem dla pary kluczy, w której utworzono instancje, nie jest obecnie opcją.
Jeśli nie jest to możliwe, czy jest jakiś inny sposób, aby dostać się do instancji?
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Chris Wagner
źródło
źródło
ssh-add
powinien zrobić to, czego potrzebujesz.Odpowiedzi:
Nie można zastosować pary kluczy do działającej instancji. Możesz użyć nowej pary kluczy tylko do uruchomienia nowej instancji.
Aby odzyskać, jeśli jest to AMI rozruchowy EBS, możesz go zatrzymać, zrobić migawkę woluminu. Utwórz na tej podstawie nowy wolumin. I możesz użyć go ponownie, aby uruchomić starą instancję, utworzyć nowy obraz lub odzyskać dane.
Chociaż dane w efemerycznym magazynie zostaną utracone.
Ze względu na popularność tego pytania i odpowiedzi chciałem uchwycić informacje w linku opublikowanym przez Rodneya w jego komentarzu.
Podziękowania dla Erica Hammonda za tę informację .
Naprawianie plików w głównym katalogu EBS wystąpienia EC2
Możesz badać i edytować pliki w głównym woluminie EBS w instancji EC2, nawet jeśli znajdujesz się w katastrofalnej sytuacji, takiej jak:
Na fizycznym komputerze siedzącym przy biurku możesz po prostu uruchomić system za pomocą dysku CD lub pamięci USB, zamontować dysk twardy, sprawdzić i naprawić pliki, a następnie ponownie uruchomić komputer, aby wrócić do pracy.
Zdalna instancja EC2 wydaje się jednak odległa i niedostępna, gdy znajdujesz się w jednej z takich sytuacji. Na szczęście AWS zapewnia nam moc i elastyczność umożliwiającą odzyskanie takiego systemu, pod warunkiem, że uruchamiamy instancje rozruchowe EBS, a nie przechowujemy instancję.
Podejście do EC2 jest nieco podobne do rozwiązania fizycznego, ale zamierzamy przenieść i zamontować wadliwy „dysk twardy” (główny wolumin EBS) w innej instancji, naprawić go, a następnie przenieść z powrotem.
W niektórych sytuacjach może być po prostu łatwiej rozpocząć nową instancję EC2 i wyrzucić złą, ale jeśli naprawdę chcesz naprawić swoje pliki, oto podejście, które działało dla wielu:
Ustawiać
Zidentyfikuj oryginalne wystąpienie (A) i wolumin zawierający uszkodzony główny wolumin EBS za pomocą plików, które chcesz wyświetlić i edytować.
Zidentyfikuj drugą instancję EC2 (B), której użyjesz do naprawy plików na oryginalnym woluminie EBS. To wystąpienie musi działać w tej samej strefie dostępności, co wystąpienie A, aby można było do niego dołączyć wolumin EBS. Jeśli nie masz już uruchomionej instancji, uruchom tymczasową.
Zatrzymaj uszkodzoną instancję A (czekając na jej całkowite zatrzymanie), odłącz główny wolumin EBS od instancji (czekając na jego odłączenie), a następnie podłącz wolumin do instancji B na nieużywanym urządzeniu.
ssh do instancji B i podłącz wolumin, aby uzyskać dostęp do jego systemu plików.
Napraw to
W tym momencie cały główny system plików z instancji A jest dostępny do przeglądania i edycji pod / vol-a w instancji B. Na przykład możesz:
Uwaga: Uids w obu instancjach mogą nie być identyczne, więc zachowaj ostrożność, jeśli tworzysz, edytujesz lub kopiujesz pliki należące do użytkowników innych niż root. Na przykład użytkownik mysql w instancji A może mieć ten sam identyfikator UID, co użytkownik postfiksowy w instancji B, co może powodować problemy, jeśli użytkownik wyświetli pliki o jednej nazwie, a następnie przeniesie wolumin z powrotem do A.
Zakończyć
Po zakończeniu i zadowalaniu się plikami w / vol-a, odmontuj system plików (wciąż na instancji B):
Teraz z powrotem w systemie za pomocą ec2-api-tools kontynuuj przenoszenie woluminu EBS z powrotem do jego pierwotnej instancji A i ponownie uruchom instancję:
Mamy nadzieję, że naprawiłeś problem, instancja A wychodzi dobrze i możesz osiągnąć to, co pierwotnie zamierzałeś zrobić. Jeśli nie, być może będziesz musiał powtarzać te kroki, aż będzie działać.
Uwaga: Jeśli elastyczny adres IP został przypisany do instancji A po jej zatrzymaniu, konieczne będzie ponowne powiązanie go po ponownym uruchomieniu.
Zapamiętaj! Jeśli instancja B została tymczasowo uruchomiona tylko dla tego procesu, nie zapomnij go teraz zakończyć.
źródło
Chociaż nie możesz dodać pary kluczy bezpośrednio do działającej instancji EC2, możesz utworzyć użytkownika linux i utworzyć dla niego nową parę kluczy, a następnie użyć go tak, jak w przypadku pary kluczy oryginalnego użytkownika.
W twoim przypadku możesz poprosić właściciela instancji (który go utworzył) o wykonanie następujących czynności. Tak więc właściciel instancji nie musi dzielić się z tobą swoimi kluczami, ale nadal będziesz mógł ssh w tych instancjach. Te kroki zostały pierwotnie opublikowane przez Utkarsh Sengar (alias. @Zengr ) na stronie http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/ . Wprowadziłem tylko kilka drobnych zmian.
Krok 1: domyślnie zaloguj się użytkownik „ubuntu” :
Krok 2: Utwórz nowego użytkownika, nazwiemy naszego nowego użytkownika „John” :
Ustaw hasło dla „John” przez:
Dodaj „john” do listy sudoer poprzez:
.. i dodaj na końcu pliku:
W porządku! Utworzono nowego użytkownika, teraz musisz wygenerować plik klucza, który będzie potrzebny do zalogowania, tak jak w kroku 1 my_orin_key.pem.
Teraz wyjdź i wróć do Ubuntu, bez rootowania.
Krok 3: Tworzenie kluczy publicznego i prywatnego :
Wprowadź hasło utworzone dla „John” w kroku 2. Następnie utwórz parę kluczy. Pamiętaj, że hasło dla pary kluczy powinno mieć co najmniej 4 znaki.
W powyższym kroku John jest użytkownikiem, który stworzyliśmy, a Ubuntu jest domyślną grupą użytkowników.
Krok 4: teraz wystarczy pobrać klucz o nazwie „John” . Używam scp do pobierania / wysyłania plików z EC2, oto jak możesz to zrobić.
Nadal będziesz musiał skopiować plik przy użyciu użytkownika ubuntu , ponieważ masz tylko klucz do tej nazwy użytkownika. Musisz więc przenieść klucz do folderu ubuntu i przesłać go do 777.
Teraz przejdź do terminala lokalnego komputera, gdzie masz plik my_orig_key.pem i zrób to:
Powyższe polecenie skopiuje klucz „John” do bieżącego katalogu roboczego na twoim komputerze lokalnym. Po skopiowaniu klucza na komputer lokalny powinieneś usunąć „/ home / ubuntu / john”, ponieważ jest to klucz prywatny.
Teraz jeden lokalny komputer chmod john do 600.
Krok 5: Czas przetestować swój klucz :
W ten sposób można skonfigurować wielu użytkowników do korzystania z jednej instancji EC2 !!
źródło
Na komputerze lokalnym uruchom polecenie:
Po uruchomieniu tego polecenia zostanie wygenerowany plik z rozszerzeniem * .pub. Skopiuj zawartość tego pliku.
Na komputerze Amazon edytuj ~ / .ssh / uprawnione_klucze i wklej zawartość pliku * .pub (i najpierw usuń istniejącą zawartość).
Następnie możesz SSH przy użyciu innego pliku, który został wygenerowany z polecenia ssh-keygen (klucz prywatny).
źródło
ssh-rsa AAAAB3NzaC1yc2EA...DsGt66 my-key-pair
Zdarzyło mi się to wcześniej (nie miałem dostępu do instancji EC2 utworzonej przez kogoś innego, ale miałem dostęp do konsoli internetowej AWS) i blogowałem odpowiedź: http://readystate4.com/2013/04/09/aws-gaining- ssh-access-to-an-ec2-instance-you-lost-access-to /
Zasadniczo możesz odłączyć dysk EBS, podłączyć go do EC2, do którego masz dostęp. Dodaj swój klucz pub SSH do
~ec2-user/.ssh/authorized_keys
na tym podłączonym dysku. Następnie umieść go z powrotem w starej instancji EC2. krok po kroku w łączu za pomocą Amazon AMI.Nie ma potrzeby tworzenia migawek ani tworzenia nowej sklonowanej instancji.
źródło
W moim przypadku wykorzystałem tę dokumentację do skojarzenia pary kluczy z moją instancją Elastic Beanstalk
Konfigurowanie instancji serwera Amazon EC2 za pomocą Elastic Beanstalk
źródło
Możesz po prostu dodać nowy klucz do instancji za pomocą następującego polecenia:
Możesz skonfigurować domain_alias w ~ / .ssh config
źródło
Nie znalazłem łatwego sposobu na dodanie nowej pary kluczy za pomocą konsoli, ale możesz to zrobić ręcznie.
Wystarczy ssh do swojej skrzynki EC2 z istniejącą parą kluczy. Następnie edytuj ~ / .ssh / autoryzowane_klucze i dodaj nowy klucz w nowym wierszu. Wyjdź i ssh przez nową maszynę. Sukces!
źródło
stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance
źródło
W środowiskach Elasticbeanstalk można zastosować parę klucz-wartość do działającej instancji, takiej jak ta:
źródło
Możesz faktycznie dodać parę kluczy poprzez stronę konfiguracji elastycznej fasoli. następnie ponownie uruchamia instancję dla Ciebie i wszystko działa.
źródło