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

Korzystając z instancji Amazon EC2, należy nimi zarządzać. Tradycyjną metodą zarządzania zdalnymi maszynami z systemem Linux jest łączenie się z systemem Linux za pośrednictwem SSH oraz uruchamianie 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 usłudze AWS EC2 w celu zapewnienia większego bezpieczeństwa. W tym wpisie na blogu wyjaśniono, jak połączyć się przez SSH z instancjami AWS z systemem Linux 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 zarządzania AWS na końcu procesu tworzenia instancji EC2 generowana jest para kluczy. Para kluczy składa się z klucza prywatnego i klucza publicznego. Protokół szyfrowania 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 tej instancji, 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 blog01-key.pem plik.

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 nawiązaniem połączenia 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 katalogu „ 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 programu 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 programu PuTTYgen widoczny jest ciąg znaków klucza publicznego. Użyj konfiguracji przedstawionej 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 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 Nazwa hosta (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. Kliknij Open.

Connecting to an AWS EC2 instance via SSH in PuTTY

Wyświetla się alert bezpieczeństwa. Przeczytaj komunikat i kliknij Accept , aby kontynuować i połączyć się z instancją EC2. To okno dialogowe pojawia 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, korzystam z ubuntu, — jest to domyślna nazwa użytkownika skonfigurowana 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 instancją 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, przeprowadzać edycję konfiguracji itp. Jednak może również zaistnieć potrzeba przesyłania plików przez SSH do instancji AWS z komputera z systemem Windows lub w odwrotnym kierunku. Istnieją protokoły przesyłania plików działające przez SSH, które umożliwiają bezpieczne przesyłanie plików z jednego komputera na drugi, na przykład Secure File Transfer Protocol (SFTP) i Secure Copy Protocol (SCP).

Aby przesłać pliki przez SSH do instancji AWS z systemu Windows, można skorzystać z WinSCP, czyli bezpłatnego narzędzia dla systemu Windows. Należy pamiętać, że scp musi być zainstalowany na zdalnym komputerze z systemem Linux działającym w AWS.

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

Wybierz SFTP jako protokół przesyłania 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 swojej 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 Zaawansowane ustawienia serwisu . Kliknij w sekcji Parametry uwierzytelniania 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 łączenia się z instancją EC2 za pomocą programu PuTTY. Kliknij Yes , aby kontynuować.

Connecting to AWS via SSH – displaying connection details

Jeśli konfiguracja SSH dla AWS EC2 jest poprawna, a ustawienia połączenia SSH w programie WinSCP zostały pomyślnie ustawione, pojawi się okno z dwoma panelami w stylu Commander. W lewym panelu wyświetlany jest folder użytkownika na lokalnym komputerze z systemem Windows, a w prawym panelu — katalog 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 lokalnego komputera 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 komputerze 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 szerokie.

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

Ten klucz prywatny zostanie zignorowany. Ładowanie klucza: 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ć dostępne tylko do odczytu 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, korzystając z programu SCP w systemie Linux. Upewnij się, że nawiązałeś już połączenie SSH z AWS do zdalnej instancji Linuksa ze swojego lokalnego komputera z systemem Linux. Następnie otwórz nową konsolę na lokalnym komputerze z systemem Linux i połącz się z instancją EC2, używając 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 postaci:

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 kopiować ważne pliki z instancji Amazon EC2 na wybrany komputer lokalny i wykonać kopię zapasową. Regularnie wykonuj operację Kopia zapasowa AWS EC2 , aby uniknąć utraty danych.

Jak dodać nowy klucz do instancji AWS

Po utworzeniu instancji AWS EC2 można 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 innym użytkownikom dostępu SSH do instancji EC2. Jeśli uznasz, że użytkownik nie musi łączyć się przez SSH z instancjami AWS, możesz usunąć klucz publiczny z maszyny z systemem Linux działającej w AWS EC2 bez konieczności tworzenia nowego klucza w miejsce 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źć daną parę kluczy, można wpisać fragment 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 za pomocą nowego klucza, wybieram opcję klucza „ .pem ”. W razie potrzeby można dodać tagi. Po przygotowaniu się do kontynuacji należy kliknąć „ Create key pair ”.

Creating a new key pair to connect to AWS EC2 instances

Pobierany plik należy zapisać 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

W interfejsie internetowym konsoli zarządzania AWS wygenerowaliśmy nową parę kluczy. 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 ze swojego lokalnego komputera z systemem Linux, zgodnie z instrukcją podaną 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) 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 kolejny 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 tego użytkownika, należy usunąć drugi wiersz z pliku .ssh/authorized_keys na zdalnej instancji systemu Linux działającej w AWS EC2. Ponieważ konfiguracja SSH w 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żna 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 do 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 daną instancją. Nie można wygenerować nowego klucza i wstawić go do pliku konfiguracyjnego SSH AWS w bieżącej instancji EC2. W takiej sytuacji można skorzystać z tymczasowej instancji EC2, do której masz dostęp przez 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 do 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).
  • W konsoli zarządzania AWS wygeneruj nową parę kluczy do łączenia się z AWS. Zapisz klucz prywatny i przygotuj klucz publiczny. Musisz wygenerować ciąg znaków klucza publicznego, aby naprawić konfigurację SSH AWS przechowywaną na woluminie katalogu głównego 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ą / pierwotnej instancji EC2 na tej 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 ta zmienia się w zależności od katalogu, do którego zamontowano partycję główną / pierwotnej instancji EC2. Dodaj ciąg znaków nowego klucza publicznego do pliku konfiguracyjnego kluczy SSH AWS.
  • Odmontuj wolumin EBS używany przez pierwotną instancję EC2, który jest podłączony do tymczasowej instancji EC2.
  • Zamontuj ponownie wolumin EBS zawierający zmodyfikowany plik konfiguracyjny kluczy SSH AWS na pierwotnej 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 służące do uzyskiwania 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ą usługi EC2 Instance Connect. Ta funkcja pozwala zautomatyzować zarządzanie kluczami SSH służącymi do łączenia się z instancjami AWS.

Ideą korzystania z usługi EC2 Instance Connect jest tworzenie zasad zarządzania tożsamością i dostępem (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ądarkowego klienta konsoli AWS EC2 lub interfejsu CLI usługi Amazon EC2 Instance Connect w celu nawiązania połączenia z instancjami AWS EC2.

Interfejs API usługi Amazon Instance Connect umieszcza jednorazowy publiczny klucz SSH w metadanych instancji na okres 60 sekund. Polityka IAM powiązana z użytkownikiem IAM nadaje mu uprawnienia. 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.

Wsparcie dla usługi Amazon Instance Connect jest dostępne w przypadku instancji EC2, na których zainstalowano system Ubuntu 16 (lub nowszy) oraz Amazon Linux 2. Usługa Amazon Instance Connect musi być zainstalowana na instancji EC2 z systemem Linux. Kolejnym warunkiem wstępnym jest zainstalowanie AWS CLI na zdalnej maszynie z systemem Linux działającej w AWS.

Po instalacji usługa EC2 Instance Connect uruchamia skrypt, który zapisuje dane do poniższych 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, usługa 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 stronę Konsola IAM, następnie przejdź do sekcji „Policies” (Zasady) i kliknij przycisk „Create Policy” (Utwórz zasadę). Alternatywnie można skorzystać z 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 serwisie Amazon Konsola EC2, wybierz odpowiednią instancję EC2 i kliknij przycisk Connect . Na stronie „Połącz się z instancją” wybierz opcję EC2 Instance Connect tab i kliknij Connect.

How to connect to AWS EC2 instances with EC2 Instance Connect

Podsumowanie

Łączenie się z instancjami AWS EC2 przez SSH stanowi ważną część procesu administracji usługą AWS EC2. W tym wpisie na blogu wyjaśniono, jak skonfigurować połączenie SSH z AWS EC2 oraz jak łą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 w usłudze 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 wykonać 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 zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

People also read