Tworzenie połączenia SSH za pomocą usługi Amazon EC2 Instance Connect

Korzystając z instancji Amazon EC2, należy nimi odpowiednio zarządzać. Tradycyjną metodą zarządzania zdalnymi maszynami z systemem Linux jest łączenie się z nimi przez SSH oraz wykonywanie niezbędnych poleceń, edycja plików konfiguracyjnych itp. Użytkownicy mogą logować się do systemu Linux przez SSH, używając nazwy użytkownika i hasła lub nazwy użytkownika i klucza bezpieczeństwa. Jednak w celu połączenia się z instancjami EC2 przez SSH użytkownicy mogą korzystać wyłącznie z nazwy użytkownika i klucza bezpieczeństwa. Zasada ta została wprowadzona w AWS EC2 w celu zapewnienia większego bezpieczeństwa. W tym wpisie na blogu wyjaśniono, jak połączyć się z instancjami AWS z systemem Linux przez SSH z komputerów z systemem Windows i Linux.

NAKIVO do tworzenia kopii zapasowej AWS EC2

NAKIVO do tworzenia kopii zapasowej AWS EC2

Wykonywanie kopii zapasowej instancji Amazon EC2 na platformie EC2, w usłudze AWS S3 oraz na miejscu. Ochrona przed oprogramowaniem wymuszającym okup. Szybkie odzyskiwanie instancji i obiektów aplikacji.

Pobieranie klucza z AWS

Podczas tworzenia nowej instancji EC2 za pomocą kreatora w konsoli AWS Management Console na końcu procesu tworzenia instancji EC2 generowana jest para kluczy. Para kluczy składa się z klucza prywatnego i klucza publicznego. Protokół szyfrujący to Secure Shell (SSH), a para kluczy służy do asymetrycznego szyfrowania połączenia. Klucz publiczny można wygenerować przy użyciu klucza prywatnego. Po wygenerowaniu pary kluczy dla instancji Amazon EC2 klucz publiczny jest zapisywany w konfiguracji systemu Linux zainstalowanego na instancji EC2, a klucz prywatny jest pobierany przez użytkownika.

Klucz prywatny należy pobrać w ostatnim kroku procesu tworzenia instancji Amazon EC2 i zapisać go w bezpiecznym miejscu. Instancja EC2 nie zostanie utworzona, dopóki nie pobierzesz klucza prywatnego. Klucz prywatny jest dostarczany w pliku PEM. Należy pamiętać, że jest to jedyna szansa na pobranie klucza dla bieżącej instancji AWS EC2.

Saving the key required to connect to an AWS EC2 instance to finish creating the instance

Pobieram klucz prywatny i zapisuję go jako plik blog01-key.pem .

C Łączenie się z instancją EC2 przez SSH Korzystanie z PuTTY

PuTTY to darmowy klient SSH, który można zainstalować w systemie Windows. Przed połączeniem się z AWS przez SSH należy przekonwertować pobrany plik PEM do formatu PPK, który jest obsługiwany przez PuTTY. W tym celu należy użyć narzędzia PuTTY Key Generator (PuTTYgen), które jest instalowane wraz z PuTTY z jednego pliku instalacyjnego. Można również ręcznie pobrać puttygen.exe . PuTTYgen służy do generowania kluczy RSA i DSA.

W rezultacie na komputerze z systemem Windows, z którego zamierzam połączyć się z instancjami EC2, mam trzy pliki:

blog01-key.pem

putty.exe

puttygen.exe

W tym przykładzie pliki te znajdują się w „ C:AWS SSH ”.

How to connect to AWS instances via SSH – preparing the needed files

Otwórz generator kluczy PuTTY (PuTTYgen), klikając plik puttygen.exe lub skrót do tego pliku.

Kliknij Load w oknie PuTTYgen.

SSH Amazon EC2 key conversion in PuTTYgen

Kliknij Select All Files (*.*) i wybierz plik PEM. Wybieramy „ C:AWS SSHblog01-key.pem ”. Następnie kliknij Open.

Loading a key for AWS SSH conversion and configuration

Przeczytaj wyświetlony komunikat i kliknij OK.

SSH Amazon EC2 key import

Teraz w oknie PuTTYgen widoczny jest ciąg znaków klucza publicznego. Użyj konfiguracji pokazanej na poniższym zrzucie ekranu.

Typ generowanego klucza: RSA

Liczba bitów w generowanym kluczu: 2048 bit

Kliknij Save private key. How to connect to an AWS instance via SSH – saving a converted key

Czy na pewno chcesz zapisać ten klucz bez hasła zabezpieczającego?

Kliknij Yes , jeśli się zgadzasz. Jeśli się nie zgadzasz, wróć i zabezpiecz klucz hasłem.

Saving a key needed for AWS SSH configuration

Zapisz klucz prywatny w bezpiecznym miejscu. Ja zapisuję klucz jako „ C:AWS SSHAWS EC2 SSH.ppk ”. Kliknij Save.

Saving the AWS EC2 SSH key file in the ppk format

H ow Jak połączyć się przez SSH z instancją EC2 z systemu Windows

Sprawdź publiczny adres IP swojej instancji AWS EC2. Instancja musi być w stanie uruchomionym, aby posiadać publiczny adres IP. W moim przypadku publiczny adres IP to 52.55.222.44 . Użyję tego adresu IP do połączenia się z AWS przez SSH.

Checking the public IP address of the EC2 instance

Otwórz program PuTTY w systemie Windows. Uruchom putty.exe lub odpowiedni skrót.

Przejdź do SSH > Auth.

Kliknij Browse i wybierz plik PPK (klucz prywatny). Wybieram plik „ C:AWS SSHAWS EC2 SSH.ppk ” wygenerowany wcześniej w programie PuTTYgen.

Connect to EC2 instance SSH PuTTY

Wróć do ekranu Session w programie PuTTY i wprowadź publiczny adres IP swojej instancji EC2 w polu Host Name (lub adres IP) . Upewnij się, że typ połączenia to SSH . Wpisuję 52.55.222.44 , czyli adres IP mojej instancji EC2 skopiowany z konsoli zarządzania EC2. Wybrany jest port TCP 22. Naciśnij Open.

Connecting to an AWS EC2 instance via SSH in PuTTY

Wyświetla się alert bezpieczeństwa. Przeczytaj komunikat i naciśnij Accept , aby kontynuować i połączyć się z instancją EC2. To okno dialogowe wyświetla się przy pierwszym połączeniu z daną maszyną zdalną. Odcisk palca wyświetlony w komunikacie musi być zgodny z odciskiem palca instancji EC2.

Establishing the SSH connection with a Linux instance (SSH Amazon EC2)

Wpisz nazwę użytkownika w oknie konsoli. Ponieważ na mojej instancji EC2 używam systemu Ubuntu Linux, używam ubuntu, , która jest domyślną nazwą użytkownika skonfigurowaną dla tej instancji wdrażanej z odpowiedniego obrazu Amazon Machine Image (AMI).

Domyślne nazwy użytkowników dla różnych typów obrazów AMI systemu Linux w AWS:

  • Amazon Linux 2 lub obraz AMI Amazon Linux: ec2-user
  • CentOS: centos lub ec2-user
  • Debian: admin
  • Fedora: fedora lub ec2-user
  • Red Hat Enterprise Linux (RHEL): ec2-user lub root
  • SUSE: ec2-user lub root
  • Ubuntu: ubuntu
  • Oracle: ec2-user
  • Bitnami: bitnami

Gdy pojawi się wiersz poleceń powłoki systemu Linux (w tym przypadku bash), można uruchamiać polecenia na zdalnej maszynie z systemem Linux działającej w AWS. Oznacza to, że w programie PuTTY skonfigurowano prawidłowo połączenie SSH z usługą AWS EC2.

Connect to EC2 instance SSH ubuntu

Przesyłanie plików przez SSH do instancji Amazon EC2

Skonfigurowałem zdalny dostęp SSH do instancji EC2 w AWS i teraz mogę łączyć się z instancjami AWS przez SSH, uruchamiać polecenia, edytować konfigurację itp. Jednak może również zaistnieć potrzeba przesyłania plików przez SSH do instancji AWS z komputera z systemem Windows lub w drugą stronę. Istnieją protokoły przesyłania plików, które działają przez SSH, umożliwiając bezpieczne przesyłanie plików z jednego komputera na drugi, na przykład Secure File Transfer Protocol (SFTP) i Secure Copy Protocol (SCP).

Aby przesyłać pliki przez SSH do instancji AWS z systemu Windows, można użyć WinSCP, które jest bezpłatnym narzędziem dla systemu Windows. Należy pamiętać, że scp musi być zainstalowane na zdalnym komputerze z systemem Linux działającym w AWS.

Po zainstalowaniu WinSCP na komputerze z systemem Windows uruchom aplikację.

Wybierz SFTP jako protokół plików, a w polu Nazwa hosta wprowadź publiczny adres IP instancji EC2, z którą chcesz się połączyć przez SSH w celu przesyłania plików. Wprowadź nazwę użytkownika dla instancji EC2. W moim przykładzie używam 52.55.222.44 jako adresu IP oraz ubuntu jako nazwy użytkownika.

Kliknij Advanced w głównym oknie programu WinSCP.

How to enable transferring files via SSH to AWS EC2 instances

Przejdź do SSH > Authentication w oknie Advanced Site Settings . Kliknij w sekcji Authentication parameters i wybierz klucz prywatny wygenerowany wcześniej w programie PuTTYgen. W moim przypadku wybieram „ C:AWS SSHAWS EC2 SSH.ppk ”. Kliknij OK , aby zapisać ustawienia i powrócić do głównego okna programu WinSCP.

Selecting the AWS EC2 SSH key for connecting to AWS instances in WinSCP

Kliknij Login w głównym oknie programu WinSCP.

How to transfer files via SSH to an AWS instance in WinSCP

Pojawi się komunikat ostrzegawczy, podobnie jak podczas pierwszego połączenia z instancją EC2 z poziomu programu PuTTY. Kliknij Yes , aby kontynuować.

Connecting to AWS via SSH – displaying connection details

Jeśli konfiguracja AWS EC2 SSH jest poprawna, a ustawienia połączenia SSH w WinSCP zostały ustawione pomyślnie, pojawi się okno z dwoma panelami w stylu Commander. W lewym panelu wyświetlany jest folder użytkownika lokalnego komputera z systemem Windows, a w prawym panelu — folder domowy użytkownika systemu Linux działającego w AWS. Można przeciągać i upuszczać pliki z jednego panelu do drugiego oraz kopiować, zmieniać nazwy lub usuwać pliki na komputerze lokalnym i zdalnym. Transferring files via SSH to an AWS instance is working now

Łączenie się z AWS przez SSH z systemu Linux

W przeciwieństwie do systemu Windows, Linux posiada wbudowany klient SSH. W konsoli lokalnej maszyny z systemem Linux użyj polecenia podobnego do poniższego, aby połączyć się przez SSH z instancjami AWS EC2 z systemem Linux:

ssh -i file_name.pem ubuntu@ip_address

Przejdź do katalogu, w którym na maszynie z systemem Linux znajduje się plik klucza prywatnego .pem . W tym przykładzie używam systemu Ubuntu i pobrałem plik blog01-key.pem do katalogu ~/Downloads/.

cd ~/Downloads/

ssh -i blog01-key.pem ubuntu@52.55.222.44

Gdzie ubuntu to nazwa użytkownika na zdalnym komputerze z systemem Linux, a 52.55.222.44 to adres IP zdalnego komputera z systemem Linux.

Jeśli uruchomisz to polecenie teraz, pojawi się błąd:

Ostrzeżenie: Niezabezpieczony plik klucza prywatnego.

Uprawnienia dla pliku „blog01-key.pem” są zbyt otwarte.

Wymagane jest, aby klucz prywatny nie był dostępny dla innych osób.

Ten klucz prywatny zostanie zignorowany. Załaduj klucz: uprawnienie pad.

Odmowa dostępu (klucz publiczny).

SSH Amazon EC2 – connecting from Linux to a remote EC2 instance

Ze względów bezpieczeństwa należy ustawić niższe (bardziej restrykcyjne) uprawnienia.

chmod 400 ./blog-key.pem

Użyj 400 jeśli klucze mają być czytelne tylko dla Ciebie.

Użyj 600 jeśli chcesz, aby klucze były dla Ciebie dostępne do odczytu i zapisu.

Teraz możesz połączyć się z instancjami AWS EC2 przez SSH ze swojego komputera z systemem Linux za pomocą polecenia:

ssh -i blog01-key.pem ubuntu@52.55.222.44

Teraz jestem połączony przez SSH z instancją Amazon EC2.

How to connect to EC2 instance via SSH (Linux)

Przesyłanie plików przez SSH do Amazon EC2 w systemie Linux

Możesz również przesyłać pliki przez SSH do instancji AWS, używając SCP w systemie Linux. Upewnij się, że nawiązałeś już połączenie SSH AWS z zdalną instancją Linux z lokalnego komputera z systemem Linux. Następnie otwórz nową konsolę na lokalnym komputerze z systemem Linux i połącz się z instancją EC2 za pomocą polecenia w stylu:

scp -i /path/key_name.pem /path/file_name.txt user_name@ec2_instance_IP_address:/path_to_file

W moim przykładzie używam polecenia:

scp -i ~/Downloads/blog01-key.pem ~/Downloads/file.txt ubuntu@52.55.222.44:/home/ubuntu

Transferring files via SSH to the AWS instance in the Linux console

Przesyłanie plików przez SSH do instancji AWS zakończyło się pomyślnie.

Transferring files via SSH to the AWS instance in the Linux console has finished

Aby skopiować plik w odwrotnym kierunku (z systemu Linux w AWS EC2 na lokalny komputer z systemem Linux), użyj polecenia w stylu:

scp -i /path/key_name.pem user_name@ec2_instance_IP_address:/path_to_file/my-file.txt path/my-file2.txt

W moim przypadku używam polecenia:

scp -i ~/Downloads/blog01-key.pem ubuntu@52.55.222.44:/home/ubuntu/file1.txt ~/Downloads/file1-copy.txt

How to copy files from an EC2 instance via SSH in Linux

Jak widać na zrzucie ekranu, plik został pomyślnie skopiowany. Możesz skopiować ważne pliki z instancji Amazon EC2 na potrzebny komputer lokalny i wykonać kopię zapasową plików. Regularnie wykonuj Kopia zapasowa AWS EC2 , aby uniknąć utraty danych.

Jak dodać nowy klucz do instancji AWS

Po utworzeniu instancji AWS EC2 możesz utworzyć dodatkową parę kluczy dla tej instancji, aby umożliwić łączenie się z instancjami AWS za pośrednictwem SSH. Może to być konieczne w celu zapewnienia dostępu SSH do instancji EC2 innym użytkownikom. Jeśli uznasz, że użytkownik nie musi łączyć się przez SSH z instancjami AWS, możesz usunąć klucz publiczny z komputera z systemem Linux działającego w AWS EC2 bez konieczności tworzenia nowego klucza zamiast klucza wygenerowanego w momencie utworzenia instancji.

Otwórz konsolę zarządzania EC2 w konsoli zarządzania AWS.

Przejdź do Network & Security w panelu nawigacyjnym i kliknij Key Pairs.

Na tej stronie wyświetlane są wszystkie istniejące pary kluczy. Aby znaleźć parę kluczy, można wpisać część nazwy istniejącej pary kluczy w polu wyszukiwania.

Kliknij przycisk Create key pair w prawym górnym rogu interfejsu internetowego, aby utworzyć nową parę kluczy dla istniejącej instancji EC2.

AWS EC2 SSH connection – creating an additional key pair

Wybierz .pem jako format klucza prywatnego, jeśli chcesz używać klucza w systemie Linux z OpenSSH, lub wybierz .ppk, jeśli chcesz używać klucza w systemie Windows z PuTTY. Ponieważ zamierzam używać lokalnej maszyny z systemem Linux do łączenia się z instancjami AWS EC2 przez SSH przy użyciu nowego klucza, wybieram opcję klucza .pem . W razie potrzeby można dodać tagi. Naciśnij Create key pair , gdy będziesz gotowy do kontynuowania.

Creating a new key pair to connect to AWS EC2 instances

Zapisz pobrany plik w bezpiecznym miejscu. W moim przypadku nazwa pobranego pliku to blog02-temp.pem i zapisuję ten plik w katalogu Downloads w katalogu domowym użytkownika.

Saving the pem key file

Pobieranie klucza publicznego z nowej pary kluczy

Wygenerowaliśmy nową parę kluczy w interfejsie internetowym konsoli zarządzania AWS. Teraz musimy wygenerować klucz publiczny przy użyciu klucza prywatnego z pobranego pliku .pem .

Użyj polecenia w następującym formacie:

ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem

W moim przypadku polecenie brzmi:

ssh-keygen -y -f ~/Downloads/blog02-temp.pem

Jeśli pojawi się błąd, ustaw odpowiednie uprawnienia:

chmod 400 ~/Downloads/blog02-temp.pem

Jeśli wszystko jest w porządku, wygenerowany klucz publiczny zostanie wyświetlony w konsoli.

Generating a public key by using a private key for connecting via SSH into AWS instances

Skopiuj wygenerowany ciąg klucza i zapisz tę informację w bezpiecznym miejscu. W tym przykładzie zapisuję ciąg klucza do pliku tekstowego.

Skopiuj ciąg klucza do schowka.

Połącz się z instancjami EC2 przez SSH z lokalnej maszyny z systemem Linux, zgodnie z wyjaśnieniem powyżej w tym poście.

Znajdujemy się teraz w /home/Ubuntu/ .

Otwórz edytorem tekstowym plik konfiguracyjny, w którym przechowywane są klucze publiczne umożliwiające dostęp do instancji EC2 przez SSH: nano ~/.ssh/authorized_keys

Pełna ścieżka do tego pliku konfiguracyjnego zależy od obrazu Amazon Machine Image (AMI) dla systemu Linux i może wyglądać następująco:

/home/ubuntu/.ssh/authorized_keys

/home/ec2-user/.ssh/authorized_keys

/root/.ssh/authorized_keys

Wklej swój klucz ze schowka do drugiego wiersza tego pliku konfiguracyjnego.

Zapisz zmiany i zamknij plik.

AWS SSH configuration – adding a public key to a Linux machine running in AWS EC2

Nie zamykaj konsoli (terminala) z bieżącą sesją SSH, której używasz do połączenia z instancją EC2, dopóki nie upewnisz się, że drugi dodany klucz działa. W przeciwnym razie możesz utracić połączenie SSH, jeśli konfiguracja jest nieprawidłowa, i nie będziesz w stanie połączyć się z instancjami AWS przez SSH. Nie zablokuj sobie dostępu na wypadek popełnienia błędu!

Otwórz inny terminal na lokalnej maszynie z systemem Linux i spróbuj połączyć się z instancją przy użyciu nowego klucza. Przechodzę do katalogu, w którym znajdują się moje pliki kluczy .pem .

cd ~/Downloads/

Preparing to check the SSH connection to an AWS EC2 instance with the second key pair

Połącz się z instancją EC2 z systemem Linux w AWS ze swojego lokalnego komputera z systemem Linux w nowej konsoli, definiując nowy klucz prywatny (w tym przypadku blog02-temp.pem ).

ssh -i blog02-temp.pem ubuntu@52.55.222.44

SSH Amazon EC2 – the SSH connection with an additional key pair is established

Połączenie SSH z AWS zostało pomyślnie nawiązane przy użyciu nowego klucza. Teraz możesz wysłać nowy klucz ( blog02-temp.pem ) do użytkownika, który musi nawiązać połączenie SSH z AWS. Gdy zajdzie potrzeba wyłączenia dostępu SSH do tej instancji AWS EC2 dla użytkownika, usuń drugi wiersz z pliku .ssh/authorized_keys na zdalnej instancji Linux działającej w AWS EC2. Ponieważ konfiguracja SSH AWS z obydwoma kluczami (pierwszym kluczem wygenerowanym podczas tworzenia instancji EC2 oraz drugim kluczem utworzonym wcześniej dla innego użytkownika w celu połączenia się z AWS EC2) działa poprawnie, możesz zamknąć okna terminala SSH.

Jeśli usuniesz parę kluczy w Network & Security > Key pairs z konsoli zarządzania EC2 (miejsca, w którym utworzyliśmy drugi klucz w interfejsie internetowym konsoli zarządzania AWS), klucze wewnątrz danej instancji EC2 nie zostaną usunięte.

Co zrobić w przypadku utraty klucza SSH AWS EC2

Jeśli utracisz klucz prywatny służący do łączenia się z instancją AWS EC2 (który został wygenerowany podczas tworzenia nowej instancji EC2), nie będziesz już mógł połączyć się z odpowiednią instancją. Nie można wygenerować nowego klucza i wstawić go do pliku konfiguracyjnego AWS SSH w bieżącej instancji EC2. W tej sytuacji można użyć tymczasowej instancji EC2, do której masz dostęp SSH. Wypróbuj poniższy schemat postępowania, aby przywrócić dostęp SSH do instancji AWS EC2.

  • Zatrzymaj pierwotną instancję EC2, której prywatny klucz SSH w AWS zgubiłeś.
  • Sprawdź informacje o woluminach EBS podłączonych do instancji EC2. Musisz zidentyfikować wolumin EBS zawierający katalog główny / zamontowany w systemie Linux. Zanotuj identyfikator tego woluminu EBS.
  • Uruchom tymczasową instancję w AWS EC2. Możesz użyć instancji z tą samą dystrybucją systemu Linux, co na pierwotnej maszynie (AMI tego samego typu).
  • Wygeneruj nową parę kluczy łączącą się z AWS w konsoli zarządzania AWS. Zapisz klucz prywatny i przygotuj klucz publiczny. Musisz wygenerować ciąg znaków klucza publicznego, aby naprawić konfigurację AWS SSH przechowywaną na woluminie root używanym przez pierwotną instancję.
  • Utwórz katalog w systemie Linux działającym na tymczasowej instancji EC2 i zamontuj wolumin EBS zawierający partycję główną / oryginalnej instancji EC2 na tymczasowej instancji EC2. Znajdź potrzebny wolumin EBS na podstawie identyfikatora woluminu, który zapisałeś wcześniej.
  • Otwórz plik konfiguracyjny klucza SSH AWS (który znajdował się w katalogu takim jak /home/Ubuntu/.ssh/authorized_keys). Ścieżka zmienia się w zależności od katalogu, do którego zamontowano partycję root oryginalnej instancji EC2. Dodaj ciąg znaków nowego klucza publicznego do pliku konfiguracyjnego klucza SSH AWS.
  • Odmontuj wolumin EBS używany przez oryginalną instancję EC2, który jest podłączony do tymczasowej instancji EC2.
  • Zamontuj wolumin EBS zawierający edytowany plik konfiguracyjny klucza SSH AWS z powrotem do oryginalnej instancji EC2.
  • Włącz pierwotną instancję EC2 i połącz się z nią, używając nowej pary kluczy przez SSH.

Korzystanie z EC2 Instance Connect

Zarządzanie kluczami jest ważną częścią administracji AWS, ponieważ klucze SSH AWS EC2 potrzebne do uzyskania dostępu do instancji EC2 należy przechowywać w bezpiecznym miejscu, a także zapobiegać ich utracie. Tworzenie i usuwanie kluczy potrzebnych do tymczasowego dostępu innych użytkowników może być rutynowym zadaniem w przypadku dużej liczby użytkowników. Z tego powodu Amazon udostępnia możliwość łączenia się z instancjami AWS EC2 przez SSH za pomocą EC2 Instance Connect. Ta funkcja pozwala zautomatyzować zarządzanie kluczami SSH do łączenia się z instancjami AWS.

Ideą korzystania z EC2 Instance Connect jest tworzenie zasad Identity & Access Management (IAM) w celu centralnego kontrolowania dostępu SSH do instancji EC2 bez konieczności ręcznego zarządzania (tworzenia, udostępniania, usuwania) kluczy SSH. Wreszcie, użytkownicy mogą korzystać z klienta SSH, przeglądarkowej konsoli AWS EC2 lub interfejsu CLI Amazon EC2 Instance Connect w celu nawiązania połączenia z instancjami AWS EC2.

Interfejs API Amazon Instance Connect przesyła do metadanych instancji jednorazowy klucz publiczny SSH, który pozostaje aktywny przez 60 sekund. Polityka IAM powiązana z użytkownikiem IAM autoryzuje użytkownika. Użytkownik musi połączyć się z instancją EC2 przy użyciu tego klucza w ciągu 60 sekund. Po wygaśnięciu klucza należy użyć nowego klucza.

Amazon Instance Connect oferuje wsparcie dla instancji EC2, na których zainstalowano system Ubuntu 16 (lub nowszy) oraz Amazon Linux 2. Amazon Instance Connect musi być zainstalowany na instancji EC2 z systemem Linux. Kolejnym warunkiem wstępnym jest instalacja AWS CLI na zdalnej maszynie z systemem Linux działającej w AWS.

Po instalacji EC2 Instance Connect uruchamia skrypt, który zapisuje dane do tych parametrów w pliku konfiguracyjnym (/etc/ssh/sshd_config) demona serwera SSH:

AuthorizedKeysCommand

AuthorizedKeysCommandUser

Zaktualizowana AuthorizedKeysCommand konfiguracja służy do odczytu publicznych kluczy SSH AWS EC2 z metadanych instancji EC2. Jeśli dla tych parametrów wprowadzono już niestandardowe wartości, Instance Connect nie aktualizuje (nie nadpisuje) ich, ale w takim przypadku nie można korzystać z tej funkcji.

Należy utworzyć plik konfiguracyjny w formacie JSON. Otwórz Konsola IAM, następnie przejdź do sekcji Policies i kliknij Create Policy. Alternatywnie można użyć interfejsu wiersza poleceń na komputerze z systemem Linux, na którym zainstalowano AWS CLI. Przykładowa konfiguracja została przedstawiona poniżej. Ta polityka umożliwia identyfikację instancji na podstawie identyfikatora instancji w celu zezwolenia na dostęp.

{

    "Version": "2021-10-17",

    "Statcodeent": [

      {

        "Effect": "Allow",

        "Action": "ec2-instance-connect:SendSSHPublicKey",

        "Resource": [

            "arn:aws:ec2:region:account-id:instance/i-00000000000000000",

            "arn:aws:ec2:region:account-id:instance/i-00000000000000001"

        ],

        "Condition": {

            "StringEquals": {

                "ec2:osuser": "ami-username"

            }

        }

      },

      {

        "Effect": "Allow",

        "Action": "ec2:DescribeInstances",

        "Resource": "*"

      }

    ]

}

Następnie należy aktywować politykę. Polecenie AWS CLI służące do aktywacji polityki będzie wyglądało mniej więcej tak:

aws iam create-policy --policy-name my-policy --policy-document file://JSON-file-name

Aktywowaną politykę można przypisać do odpowiedniego użytkownika.

aws iam attach-user-policy --policy-arn arn:aws:iam::account-id:policy/my-policy --user-name IAM-friendly-name

Aby połączyć się z instancją EC2 w Amazon Konsola EC2, wybierz potrzebną instancję EC2 i kliknij przycisk Connect . Na stronie Połącz z instancją wybierz EC2 Instance Connect tab i kliknij Connect.

How to connect to AWS EC2 instances with EC2 Instance Connect

Wnioski

Łączenie się z instancjami AWS EC2 przez SSH jest ważną częścią procesu administracji AWS EC2. W tym wpisie na blogu wyjaśniono, jak skonfigurować SSH dla AWS EC2 i połączyć się z instancjami AWS EC2 z systemem Linux z lokalnych komputerów z systemem Linux i Windows. Do nawiązania połączenia SSH z instancjami EC2 należy używać par kluczy. Klucz publiczny jest przechowywany w konfiguracji systemu Linux działającego na platformie AWS EC2, natomiast klucz prywatny jest używany przez lokalnego klienta SSH zainstalowanego na komputerze użytkownika. Klucze należy przechowywać w bezpiecznym miejscu i regularnie wykonywać kopie zapasowe, aby uniknąć utraty danych, straty czasu i ponoszenia kosztów.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read