Jak zmienić parę kluczy dla mojej instancji ec2 w konsoli zarządzania AWS? Mogę zatrzymać instancję, mogę utworzyć nową parę kluczy, ale nie widzę żadnego łącza do modyfikacji pary kluczy instancji.
Jak zmienić parę kluczy dla mojej instancji ec2 w konsoli zarządzania AWS? Mogę zatrzymać instancję, mogę utworzyć nową parę kluczy, ale nie widzę żadnego łącza do modyfikacji pary kluczy instancji.
Odpowiedzi:
Ta odpowiedź jest przydatna w przypadku, gdy nie masz już dostępu SSH do istniejącego serwera (tj. Utraciłeś swój klucz prywatny).
Jeśli nadal masz dostęp do SSH, skorzystaj z jednej z poniższych odpowiedzi.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Oto co zrobiłem dzięki postowi na blogu Erica Hammonda:
/dev/xvda1
objętość (nazwijmy to tomem A) - patrz tutaj/dev/xvdf
(lub /dev/sdf
)SSH do nowej mikro instancji i podłącz wolumin A do /mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Skopiuj ~/.ssh/authorized_keys
do/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
plikuOtóż to.
mkdir /mnt/tmp
i wtedy mount /dev/xvdf /mnt/tmp
powinien zrobić lewę dla # 5. I nie zapominaj, że krok 13. prawdopodobnie dotyczy urządzeń, rm ~/.ssh/known_hosts
z którymi się łączysz.
.ssh/authorized_keys
pliku.
Po uruchomieniu instancji nie ma możliwości zmiany pary kluczy powiązanych z instancją na poziomie metadanych, ale można zmienić klucz ssh używany do łączenia się z instancją.
W przypadku większości interfejsów AMI jest proces uruchamiania, który pobiera publiczny klucz ssh i instaluje go w pliku .ssh / Author_keys, dzięki czemu można ssh jako użytkownik przy użyciu odpowiedniego prywatnego klucza ssh.
Jeśli chcesz zmienić klucz ssh, którego używasz do uzyskania dostępu do instancji, zechcesz edytować plik autoryzowany_ kluczy w samej instancji i przekonwertować na nowy klucz publiczny ssh.
Plik autoryzowanych_kluczy znajduje się w podkatalogu .ssh w katalogu osobistym zalogowanego użytkownika. W zależności od uruchomionego interfejsu AMI może on znajdować się w jednym z:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
Po edycji pliku autoryzowanych_kluczy zawsze używaj innego terminala, aby potwierdzić, że możesz ssh zalogować się do instancji, zanim rozłączysz się z sesją do edycji pliku. Nie chcesz popełnić błędu i całkowicie zamknąć się z instancją.
Podczas gdy myślisz o parach kluczy ssh na EC2, zalecam przesłanie własnego osobistego klucza publicznego ssh do EC2 zamiast zlecania Amazon wygenerowania pary kluczy dla ciebie.
Oto artykuł, który o tym napisałem:
Przesyłanie osobistych kluczy ssh do Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
Dotyczy to tylko nowych uruchomionych instancji.
.pem
plik klucza prywatnego na moim komputerze Mac, jednak ssh -i key.pem
nie jest on uwierzytelniany (odmowa dostępu (publickey)). W konsoli zarządzania EC2 w obszarze Nazwa pary kluczy nic nie wyświetla. To mnie niepokoi. Jak mogę to ustawić? Wygląda na to, że w oparciu o konsolę zarządzania do skonfigurowanej instancji nie przypisano żadnych skonfigurowanych przeze mnie par kluczy!
Uruchom to polecenie po pobraniu pem AWS.
ssh-keygen -f YOURKEY.pem -y
Następnie zrzuć dane wyjściowe do authorized_keys
.
Lub skopiuj plik pem do instancji AWS i wykonaj następujące polecenia
chmod 600 YOURKEY.pem
i wtedy
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Instrukcja obsługi AWS EC2:
spowoduje to zapisanie zaktualizowanego pliku uprawnione klucze
teraz spróbuj otworzyć nową sesję SSH dla swojego wystąpienia przy użyciu nowego klucza pai
Po potwierdzeniu, że możesz połączyć się z instancją przy użyciu nowej pary kluczy, możesz vi .ssh / autoryzowany_klucz i usunąć stary klucz.
Odpowiedź na uwagę Shaggie:
Jeśli nie możesz połączyć się z instancją (np. Klucz jest uszkodzony), użyj konsoli AWS, aby odłączyć wolumin ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) i podłącz go ponownie do działającej instancji, a następnie zmień klucz na woluminie i podłącz go z powrotem do poprzedniej instancji.
Zauważyłem, że gdy zarządza Elastic Beanstalk, to może zmienić aktywną parę kluczy EC2. W obszarze Elastic Beanstalk> Konfiguracja> Bezpieczeństwo wybierz nowy klucz z listy rozwijanej pary kluczy EC2 . Zobaczysz tę wiadomość z pytaniem, czy masz pewność:
EC2KeyName: zmiany w ustawieniach EC2KeyName nie zaczną obowiązywać natychmiast. Każda z istniejących instancji EC2 zostanie zastąpiona, a nowe ustawienia zaczną obowiązywać.
Moja instancja została już zakończona, kiedy to zrobiłem. Następnie zaczął, zakończył i zaczął od nowa. Najwyraźniej „zastąpienie” oznacza zakończenie i utworzenie nowej instancji. Jeśli zmodyfikowałeś wolumin rozruchowy, najpierw utwórz AMI, a następnie określ ten AMI w tym samym formularzu Elastic Beanstalk> Konfiguracja> Instancje jako niestandardowy identyfikator AMI . Ostrzega również o zamianie instancji EC2.
Po zmodyfikowaniu pary kluczy EC2 i niestandardowego identyfikatora AMI oraz wyświetleniu ostrzeżeń o obu z nich kliknij Zapisz, aby kontynuować.
Pamiętaj, że adres IP zmienia się po ponownym utworzeniu instancji, dlatego musisz pobrać nowy adres IP z konsoli EC2, aby użyć go podczas łączenia przez SSH.
Przeszedłem przez to podejście i po pewnym czasie udało mi się sprawić, by działało. Brak rzeczywistych poleceń sprawił, że było to trudne, ale wymyśliłem to. JEDNAK - znacznie łatwiejsze podejście zostało znalezione i przetestowane wkrótce po:
Wykonanie poniższych kroków pozwoli zaoszczędzić dużo czasu i nie będzie potrzeby zatrzymywania działającej instancji.
To jest to. Ciesz się :)
Uważam, że najprostszym podejściem jest:
Jeśli korzystasz z platformy ElasticBeanstalk, możesz zmienić klucze, przechodząc:
Spowoduje to zakończenie bieżącej instancji i utworzenie nowej z wybranymi kluczami / ustawieniami.
W tym pytaniu zadawane są dwa scenariusze: -
1) Nie masz dostępu do pliku .pem , dlatego chcesz utworzyć nowy.
2) Masz. dostęp do pliku pem z tobą, ale po prostu chcesz zmienić lub utworzyć nowy plik .em dla pewnych słabych punktów lub ze względów bezpieczeństwa .
Więc jeśli zgubiłeś klucze, możesz przewinąć w górę i zobaczyć inne odpowiedzi . Ale jeśli po prostu zmienisz plik .pem ze względów bezpieczeństwa, wykonaj następujące czynności: -
1) Przejdź do logowania do konsoli AWS i utwórz nowy plik .pem z sekcji par kluczy tam. Automatycznie pobierze plik .pem na komputer
2) zmień uprawnienia na 400, jeśli używasz Linux / ubuntu, naciśnij poniższe polecenie
chmod 400 yournewfile.pem
3) Wygeneruj RSA nowo pobranego pliku na komputerze lokalnym
ssh-keygen -f yournewfile.pem -y
4) Skopiuj stąd kod RSA
5) Teraz SSH do twojej instancji poprzez poprzedni plik .pem
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) Daj miejsce na dwa wiersze i wklej tutaj skopiowany RSA nowego pliku, a następnie zapisz plik
7) Teraz nowy plik .pem jest połączony z działającą instancją
8) Jeśli chcesz wyłączyć poprzedni dostęp do pliku .pem, po prostu edytuj
sudo vim ~/.ssh/authorized_keys
plik i usuń lub zmień poprzedni RSA stąd.
Uwaga: - Usuń ostrożnie, aby nowo utworzone RSA nie zostało zmienione.
W ten sposób możesz zmienić / połączyć nowy plik .pem z działającą instancją.
Możesz odwołać dostęp do wcześniej wygenerowanego pliku .pem ze względów bezpieczeństwa.
Mam nadzieję, że to pomoże!
Najprostszym rozwiązaniem jest skopiowanie zawartości
~/.ssh/id_rsa.pub
w uprawnione klucze twojej instancji AWS pod adresem
~/.ssh/authorized_keys
Umożliwi to ssh do instancji EC2 bez określania pliku pem dla komendy ssh. Możesz usunąć wszystkie pozostałe klucze po przetestowaniu połączenia z nim.
Jeśli musisz utworzyć nowy klucz, aby udostępnić go komuś innemu, możesz to zrobić za pomocą:
ssh-keygen -t rsa
który utworzy plik private key.pem, a klucz publiczny można uzyskać za pomocą:
ssh-keygen -f private_key.pem -y > public_key.pub
Każdy, kto ma private_key.pem, będzie mógł się połączyć
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
gdy nie mogę nawet wystąpienia aws SSH?
Nie musisz obracać urządzenia głównego i zmieniać klucza publicznego SSH authorized_keys
. W tym celu można użyć danych użytkownika, aby dodać klucze ssh do dowolnej instancji. Po pierwsze musisz utworzyć nową KeyPair za pomocą konsoli AWS lub poprzez ssh-keygen.
ssh-keygen -f YOURKEY.pem -y
Spowoduje to wygenerowanie klucza publicznego dla nowej pary kluczy SSH, skopiowanie tego klucza publicznego i użycie go w skrypcie poniżej.
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
--//
Po ponownym uruchomieniu komputer będzie miał określony klucz publikowania SSH. Usuń dane użytkownika po pierwszym uruchomieniu. Przeczytaj więcej o danych użytkownika podczas uruchamiania .
Ostrzeżenie: nie zapomnij ponownie wyczyścić danych użytkownika. W przeciwnym razie ten klucz będzie wypychany przy każdym uruchomieniu instancji. Instrukcje krok po kroku .
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
Próbowałem poniżej kroków i działało bez zatrzymywania instancji. Moim wymaganiem było - ponieważ zmieniłem komputer kliencki, stary plik .pem nie pozwalał mi zalogować się do instancji ec2.
W tym pliku zobaczysz swoje stare klucze.
ssh-keygen -f YOUR_PEM_FILE.pem -y Wygeneruje klucz. Dołącz klucz do ~ / .ssh / uprawnionych_kluczy otwartych w kroku # 1. Nie trzeba usuwać starego klucza.
Z konsoli AWS utwórz nową parę kluczy. Przechowuj w nowej maszynie. Zmień nazwę na stary plik pem - przyczyną jest to, że stary plik pem jest nadal powiązany z instancją ec2 w AWS.
Wszystko gotowe.
Jestem w stanie zalogować się do AWS ec2 z mojego nowego komputera klienckiego.
Masz kilka opcji, aby zastąpić klucz instancji EC2.
Ponieważ pierwszą opcję można łatwo znaleźć w odpowiedziach lub w wybranej wyszukiwarce, chcę skupić się na menedżerze systemów.
Systems Manager
Automation
lewej stronie.Execute Automation
AWSSupport-TroubleshootSSH
(zwykle jest na ostatniej stronie)Więcej informacji można znaleźć w oficjalnej dokumentacji AWS
Odpowiedź Yegor256 zadziałała dla mnie, ale pomyślałem, że dodam kilka komentarzy, aby pomóc tym, którzy nie są tak dobrzy w montowaniu napędów (jak ja!):
Amazon daje ci wybór tego, co chcesz nazwać woluminem po dołączeniu. Używasz nazwy z zakresu od / dev / sda - / dev / sdp. Nowsze wersje Ubuntu zmienią następnie nazwę tego, co tam umieścisz, na / dev / xvd (x) lub coś w tym celu.
Więc dla mnie wybrałem / dev / sdp jako nazwę nazwy montowania w AWS, następnie zalogowałem się na serwerze i odkryłem, że Ubuntu zmieniło nazwę mojego woluminu na / dev / xvdp1). Następnie musiałem zamontować dysk - dla mnie musiałem to zrobić w następujący sposób:
mount -t ext4 xvdp1 /mnt/tmp
Po przejściu przez te wszystkie obręcze mogłem uzyskać dostęp do moich plików na / mnt / tmp
Działa to tylko wtedy, gdy masz dostęp do instancji, w której chcesz zmienić / dodać klucz. Możesz utworzyć nową parę kluczy. Lub jeśli masz już parę kluczy, możesz wkleić klucz publiczny nowej pary do pliku uprawnionego z kluczy.
vim .ssh / uprawnione_klucze
Teraz możesz użyć klucza prywatnego dla tej pary i zalogować się.
Mam nadzieję że to pomoże.
jeśli nie możesz się zalogować na maszynie wirtualnej i usunąłeś klucze ssh, a także możesz zmienić parę kluczy ec2, wykonując poniższe kroki. Idź krok po kroku 1) zatrzymaj instancję ec2. 2) zrób migawkę maszyny wirtualnej i pamięci. 3) utwórz nową maszynę wirtualną podczas jej tworzenia, wybierz migawkę i utwórz maszynę wirtualną z migawki. 4) podczas tworzenia maszyny wirtualnej pobiera parę kluczy. 5) po VM UP możesz ssh z nową parą kluczy, a dane również zostaną przywrócone.
Co możesz zrobić...
Utwórz nowy profil instancji / rolę, do której dołączono zasady AmazonEC2RoleForSSM.
Dołącz ten profil wystąpienia do wystąpienia.
Dzięki za wskazówki chłopaki. Na pewno będę o nich pamiętać, gdy będę musiał odpocząć od kluczowych par. Jednak w interesie wydajności i lenistwa wymyśliłem coś innego:
Mam nadzieję, że może ci się to przydać i zaoszczędzić trochę czasu, a także zminimalizować liczbę białych włosów uzyskanych z takich rzeczy :)