Nawiązywanie połączenia z maszyną wirtualną z systemem Linux

Podczas hostowania maszyny wirtualnej z systemem Linux na platformie Azure najbardziej typową metodą uzyskiwania dostępu do tej maszyny wirtualnej jest protokół Secure Shell Protocol (SSH). Każdy standardowy klient SSH często spotykany w systemach Linux i Windows umożliwia nawiązywanie połączenia. Możesz również użyć usługi Azure Cloud Shell w dowolnej przeglądarce.

W tym dokumencie opisano sposób nawiązywania połączenia za pośrednictwem protokołu SSH z maszyną wirtualną, która ma publiczny adres IP. Jeśli musisz nawiązać połączenie z maszyną wirtualną bez publicznego adresu IP, zobacz Usługa Azure Bastion.

Wymagania wstępne

  • Potrzebna jest para kluczy SSH. Jeśli jeszcze go nie masz, platforma Azure tworzy parę kluczy podczas procesu wdrażania. Jeśli potrzebujesz pomocy przy tworzeniu jednego ręcznie, zobacz Create and use an SSH public-private key pair for Linux VMs in Azure (Tworzenie i używanie pary kluczy publicznych-prywatnych SSH dla maszyn wirtualnych z systemem Linux na platformie Azure).

  • Potrzebna jest istniejąca sieciowa grupa zabezpieczeń. Większość maszyn wirtualnych domyślnie ma sieciową grupę zabezpieczeń, ale jeśli jeszcze jej nie masz, możesz ją utworzyć i dołączyć ją ręcznie. Aby uzyskać więcej informacji, zobacz Tworzenie, zmienianie lub usuwanie sieciowej grupy zabezpieczeń.

  • Aby nawiązać połączenie z maszyną wirtualną z systemem Linux, potrzebny jest odpowiedni port otwarty. Zazwyczaj protokół SSH używa portu 22. Poniższe instrukcje zakładają port 22, ale proces jest taki sam dla innych numerów portów. Aby sprawdzić, czy odpowiedni port jest otwarty dla protokołu SSH, możesz użyć narzędzia do rozwiązywania problemów lub ręcznie zaewidencjonować ustawienia maszyny wirtualnej. Aby sprawdzić, czy port 22 jest otwarty:

    1. Na stronie maszyny wirtualnej wybierz pozycję Sieć z menu po lewej stronie.

    2. Na stronie Sieć sprawdź, czy istnieje reguła zezwalana na protokół TCP na porcie 22 z adresu IP komputera, którego używasz do nawiązywania połączenia z maszyną wirtualną. Jeśli reguła istnieje, możesz przejść do następnej sekcji.

      Screenshot showing how to check to see if there's already a rule allowing S S H connections.

    3. Jeśli nie ma reguły, dodaj regułę, wybierając pozycję Dodaj regułę portu przychodzącego.

    4. W polu Usługa wybierz pozycję SSH z listy rozwijanej.

      Screenshot showing where to choose S S H when creating a new N S G rule.

    5. Edytuj priorytet i źródło , jeśli to konieczne

    6. W polu Nazwa wpisz SSH.

    7. Gdy wszystko będzie gotowe, wybierz pozycję Dodaj.

    8. Teraz w tabeli reguł portów wejściowych powinna znajdować się reguła SSH.

  • Maszyna wirtualna musi mieć publiczny adres IP. Aby sprawdzić, czy maszyna wirtualna ma publiczny adres IP, wybierz pozycję Przegląd z menu po lewej stronie i zapoznaj się z sekcją Sieć . Jeśli obok publicznego adresu IP zostanie wyświetlony adres IP, maszyna wirtualna ma publiczny adres IP

    Jeśli maszyna wirtualna nie ma publicznego adresu IP, wygląda następująco:

    Screenshot of how the networking section looks when you don't have a public I P.

    Aby dowiedzieć się więcej na temat dodawania publicznego adresu IP do istniejącej maszyny wirtualnej, zobacz Kojarzenie publicznego adresu IP z maszyną wirtualną

  • Sprawdź, czy maszyna wirtualna jest uruchomiona. Na karcie Przegląd w sekcji Podstawy sprawdź, czy stan maszyny wirtualnej jest uruchomiony. Aby uruchomić maszynę wirtualną, wybierz pozycję Rozpocznij w górnej części strony.

    Screenshot showing how to check to make sure your virtual machine is in the running state.

Jeśli masz problemy z nawiązaniem połączenia, możesz również użyć portalu:

  1. Przejdź do witryny Azure Portal, aby nawiązać połączenie z maszyną wirtualną. Wyszukaj i wybierz pozycję Maszyny wirtualne.
  2. Wybierz maszynę wirtualną z listy.
  3. Wybierz Połączenie z menu po lewej stronie.
  4. Wybierz opcję zgodną z preferowanym sposobem nawiązywania połączenia. Portal ułatwia zapoznanie się z wymaganiami wstępnymi dotyczącymi nawiązywania połączenia.

Nawiązywanie połączenia z maszyną wirtualną

Po spełnieniu powyższych wymagań wstępnych możesz nawiązać połączenie z maszyną wirtualną. Otwórz wybranego klienta SSH. Polecenie klienta SSH jest zwykle zawarte w systemach Linux, macOS i Windows. Jeśli używasz systemu Windows 7 lub starszego, w którym system Win32 OpenSSH nie jest domyślnie dołączony, rozważ zainstalowanie protokołu WSL lub użycie usługi Azure Cloud Shell z przeglądarki.

Uwaga

W poniższych przykładach założono, że klucz SSH jest w formacie key.pem. Jeśli do pobrania kluczy użyto interfejsu wiersza polecenia lub programu Azure PowerShell, mogą one być w formacie id_rsa.

Protokół SSH z nową parą kluczy

  1. Upewnij się, że klucze publiczne i prywatne znajdują się w prawidłowym katalogu. Katalog to zwykle ~/.ssh.

    Jeśli klucze zostały wygenerowane ręcznie lub wygenerowano je za pomocą interfejsu wiersza polecenia, klucze prawdopodobnie już istnieją. Jeśli jednak pobrano je w formacie pem z witryny Azure Portal, może być konieczne przeniesienie ich do właściwej lokalizacji. Przenoszenie kluczy odbywa się przy użyciu następującej składni: mv PRIVATE_KEY_SOURCE PRIVATE_KEY_DESTINATION

    Jeśli na przykład klucz znajduje się w folderze Downloads i myKey.pem jest nazwą klucza SSH, wpisz:

    mv /Downloads/myKey.pem ~/.ssh
    

    Uwaga

    Jeśli używasz protokołu WSL, pliki lokalne znajdują się w mnt/c/ katalogu . W związku z tym ścieżka do folderu pobranego i klucza SSH byłaby następująca: /mnt/c/Users/{USERNAME}/Downloads/myKey.pem

  2. Upewnij się, że masz dostęp tylko do odczytu do klucza prywatnego, uruchamiając polecenie

    chmod 400 ~/.ssh/myKey.pem
    
  3. Uruchom polecenie SSH z następującą składnią: ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Jeśli na przykład azureuser nazwa użytkownika została utworzona i 20.51.230.13 jest publicznym adresem IP maszyny wirtualnej, wpisz:

    ssh -i ~/.ssh/myKey.pem azureuser@20.51.230.13
    
  4. Zweryfikuj zwrócony odcisk palca.

    Jeśli wcześniej nie nawiązano połączenia z tą maszyną wirtualną, zostanie wyświetlony monit o zweryfikowanie odcisku palca hostów. Kuszące jest zaakceptowanie przedstawionego odcisku palca, ale to naraża cię na potencjalną osobę w ataku środkowym. Zawsze należy zweryfikować odcisk palca hostów. Należy to zrobić tylko przy pierwszym nawiązaniu połączenia z poziomu klienta. Aby uzyskać odcisk palca hosta za pośrednictwem portalu, użyj funkcji Uruchom polecenie, aby wykonać polecenie:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  5. To wszystko! Teraz należy nawiązać połączenie z maszyną wirtualną. Jeśli nie możesz nawiązać połączenia, zobacz Rozwiązywanie problemów z połączeniami SSH.

Protokół SSH z istniejącym kluczem publicznym

  1. Uruchom następujące polecenie w kliencie SSH. W tym przykładzie 20.51.230.13 jest publicznym adresem IP maszyny wirtualnej, a azureuser to nazwa użytkownika utworzona podczas tworzenia maszyny wirtualnej.

    ssh azureuser@20.51.230.13
    
  2. Zweryfikuj zwrócony odcisk palca.

    Jeśli nigdy nie nawiązano połączenia z żądaną maszyną wirtualną z bieżącego klienta SSH, zanim zostanie wyświetlony monit o zweryfikowanie odcisku palca hosta. Chociaż domyślną opcją jest zaakceptowanie przedstawionego odcisku palca, jest widoczna możliwa "osoba w ataku środkowym". Zawsze należy zweryfikować odcisk palca hosta, który należy wykonać tylko przy pierwszym połączeniu klienta. Aby uzyskać odcisk palca hosta za pośrednictwem portalu, użyj funkcji Uruchom polecenie, aby wykonać polecenie:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. To wszystko! Teraz należy nawiązać połączenie z maszyną wirtualną. Jeśli nie możesz nawiązać połączenia, zapoznaj się z naszym przewodnikiem rozwiązywania problemów.

Uwierzytelnianie hasłem

Ostrzeżenie

Ten typ metody uwierzytelniania nie jest tak bezpieczny, jak para kluczy SSH i nie jest zalecana.

  1. Uruchom następujące polecenie w kliencie SSH. W tym przykładzie 20.51.230.13 jest publicznym adresem IP maszyny wirtualnej, a azureuser to nazwa użytkownika utworzona podczas tworzenia maszyny wirtualnej.

    ssh azureuser@20.51.230.13
    

    Jeśli nie pamiętasz hasła lub nazwy użytkownika, zobacz Resetowanie dostępu do maszyny wirtualnej platformy Azure

  2. Zweryfikuj zwrócony odcisk palca.

    Jeśli nigdy nie nawiązano połączenia z żądaną maszyną wirtualną z bieżącego klienta SSH, zanim zostanie wyświetlony monit o zweryfikowanie odcisku palca hosta. Chociaż domyślną opcją jest zaakceptowanie przedstawionego odcisku palca, jest widoczna możliwa "osoba w ataku środkowym". Zawsze należy zweryfikować odcisk palca hosta, który należy wykonać tylko przy pierwszym połączeniu klienta. Aby uzyskać odcisk palca hosta za pośrednictwem portalu, użyj funkcji Uruchom polecenie, aby wykonać polecenie:

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. To wszystko! Teraz należy nawiązać połączenie z maszyną wirtualną. Jeśli nie możesz nawiązać połączenia, zobacz Rozwiązywanie problemów z połączeniami SSH.

Następne kroki

Dowiedz się, jak przesyłać pliki do istniejącej maszyny wirtualnej, zobacz Przenoszenie plików do i z maszyny wirtualnej przy użyciu punktu połączenia usługi.