Udostępnij za pośrednictwem


Jak używać kluczy SSH w systemie Windows na platformie Azure

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Ten artykuł dotyczy użytkowników systemu Windows, którzy chcą tworzyć klucze secure shell (SSH) i używać ich do łączenia się z maszynami wirtualnymi z systemem Linux na platformie Azure. Klucze SSH można również wygenerować i przechowywać w witrynie Azure Portal do użycia podczas tworzenia maszyn wirtualnych w portalu.

Aby użyć kluczy SSH z klienta systemu Linux lub macOS, zobacz szybkie kroki. Aby uzyskać bardziej szczegółowe omówienie protokołu SSH, zobacz Szczegółowe kroki: Tworzenie kluczy SSH na potrzeby uwierzytelniania na maszynie wirtualnej z systemem Linux na platformie Azure i zarządzanie nimi.

Omówienie protokołu SSH i kluczy

SSH to szyfrowany protokół połączenia, który umożliwia bezpieczne logowanie za pośrednictwem niezabezpieczonych połączeń. SSH to domyślny protokół połączenia dla maszyn wirtualnych z systemem Linux hostowanych na platformie Azure. Mimo że sam protokół SSH zapewnia zaszyfrowane połączenie, użycie haseł za pomocą protokołu SSH nadal pozostawia maszynę wirtualną podatną na ataki siłowe. Zalecamy nawiązanie połączenia z maszyną wirtualną za pośrednictwem protokołu SSH przy użyciu pary kluczy publiczny-prywatny, nazywanej również kluczami SSH.

Para kluczy publiczny-prywatny jest jak blokada w drzwiach frontonu. Blokada jest widoczna publicznie, każdy, kto ma odpowiedni klucz, może otworzyć drzwi. Klucz jest prywatny i udzielany tylko osobom, którym ufasz, ponieważ może służyć do odblokowania drzwi.

  • Klucz publiczny jest umieszczany na maszynie wirtualnej z systemem Linux podczas tworzenia maszyny wirtualnej.

  • Klucz prywatny pozostaje w systemie lokalnym. Klucz prywatny należy chronić. Nie udostępniaj go.

Podczas nawiązywania połączenia z maszyną wirtualną z systemem Linux maszyna wirtualna testuje klienta SSH, aby upewnić się, że ma on prawidłowy klucz prywatny. Jeśli klient ma klucz prywatny, udzielono mu dostępu do maszyny wirtualnej.

W zależności od zasad zabezpieczeń organizacji można ponownie użyć pojedynczej pary kluczy, aby uzyskać dostęp do wielu maszyn wirtualnych i usług platformy Azure. Nie potrzebujesz oddzielnej pary kluczy dla każdej maszyny wirtualnej.

Klucz publiczny może być udostępniany dowolnej osobie, ale tylko Ty (lub lokalna infrastruktura zabezpieczeń) powinien mieć dostęp do klucza prywatnego.

Obsługiwane formaty kluczy SSH

Platforma Azure obecnie obsługuje następujące typy kluczy:

  • Protokół SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) o minimalnej długości 2048 bitów
  • ED25519 Klucze o stałej długości 256 bitów

Inne kluczowe formaty, takie jak Elliptic-curve Diffie-Hellman (ECDH) i Elliptic Curve Digital Signature Algorithm (ECDSA) nie są obecnie obsługiwane.

Klienci SSH

Najnowsze wersje systemu Windows 10 obejmują polecenia klienta OpenSSH do tworzenia i używania kluczy SSH oraz nawiązywania połączeń SSH z programu PowerShell lub wiersza polecenia.

Możesz również użyć powłoki Bash w usłudze Azure Cloud Shell , aby nawiązać połączenie z maszyną wirtualną. Możesz użyć usługi Cloud Shell w przeglądarce internetowej, w witrynie Azure Portal lub jako terminalu w programie Visual Studio Code przy użyciu rozszerzenia konta platformy Azure.

Możesz również zainstalować Podsystem Windows dla systemu Linux, aby nawiązać połączenie z maszyną wirtualną za pośrednictwem protokołu SSH i użyć innych natywnych narzędzi systemu Linux w powłoce Bash.

Tworzenie pary kluczy SSH

Najprostszym sposobem tworzenia kluczy SSH i zarządzania nimi jest użycie portalu do tworzenia i przechowywania ich do ponownego użycia.

Możesz również utworzyć pary kluczy za pomocą interfejsu wiersza polecenia platformy Azure za pomocą polecenia az sshkey create , zgodnie z opisem w temacie Generowanie i przechowywanie kluczy SSH.

Aby utworzyć parę kluczy SSH na komputerze lokalnym przy użyciu ssh-keygen polecenia programu PowerShell lub wiersza polecenia, użyj następującego polecenia:

ssh-keygen -m PEM -t rsa -b 2048

Wprowadź nazwę pliku lub użyj wartości domyślnej wyświetlanej w nawiasie (na przykład C:\Users\username/.ssh/id_rsa). Wprowadź hasło dla pliku lub pozostaw hasło puste, jeśli nie chcesz używać hasła.

Tworzenie maszyny wirtualnej przy użyciu klucza

Aby utworzyć maszynę wirtualną z systemem Linux, która używa kluczy SSH do uwierzytelniania, podaj klucz publiczny SSH podczas tworzenia maszyny wirtualnej.

Za pomocą interfejsu wiersza polecenia platformy Azure należy określić ścieżkę i nazwę pliku klucza publicznego przy użyciu az vm create polecenia i parametr .--ssh-key-value

az vm create \
   --resource-group myResourceGroup \
   --name myVM \
   --image Ubuntu2204\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

W programie PowerShell użyj New-AzVM i dodaj klucz SSH do konfiguracji maszyny wirtualnej przy użyciu polecenia . Aby zapoznać się z przykładem, zobacz Szybki start: tworzenie maszyny wirtualnej z systemem Linux na platformie Azure przy użyciu programu PowerShell.

Jeśli korzystasz z wielu wdrożeń przy użyciu portalu, możesz przekazać klucz publiczny na platformę Azure, gdzie można go łatwo wybrać podczas tworzenia maszyny wirtualnej z poziomu portalu. Aby uzyskać więcej informacji, zobacz Przekazywanie klucza SSH.

Łączenie z maszyną wirtualną

W przypadku klucza publicznego wdrożonego na maszynie wirtualnej platformy Azure oraz klucza prywatnego w systemie lokalnym protokół SSH na maszynie wirtualnej przy użyciu adresu IP lub nazwy DNS maszyny wirtualnej. Zastąp ciąg azureuser i 10.111.12.123 w poniższym poleceniu nazwą użytkownika administratora, adresem IP (lub w pełni kwalifikowaną nazwą domeny) oraz ścieżką do klucza prywatnego:

ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123

Jeśli nigdy nie nawiązano połączenia z tą maszyną wirtualną, zanim zostanie wyświetlony monit o zweryfikowanie odcisku palca hostów. Kuszące jest jednak zaakceptowanie przedstawionego odcisku palca, co naraża cię na możliwą 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 polecenia Uruchom za pomocą następującego polecenia: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Zrzut ekranu przedstawiający użycie polecenia Uruchom w celu zweryfikowania odcisku palca hosta.

Aby uruchomić polecenie przy użyciu interfejsu az vm run-command invoke wiersza polecenia, użyj polecenia .

Jeśli podczas tworzenia pary kluczy skonfigurowano hasło, po wyświetleniu monitu wprowadź hasło.

Jeśli maszyna wirtualna korzysta z zasad dostępu just in time, musisz zażądać dostępu przed nawiązaniem połączenia z maszyną wirtualną. Aby uzyskać więcej informacji na temat zasad just in time, zobacz Zarządzanie dostępem do maszyn wirtualnych przy użyciu zasad just in time.

Następne kroki