Jak nawiązać połączenie przy użyciu protokołu Secure Shell (SSH) i zalogować się do maszyny wirtualnej platformy Azure z systemem Windows

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

Projekt Win32 OpenSSH zapewnia powszechną łączność zdalną z protokołem Secure Shell, zapewniając natywną obsługę w systemie Windows. Ta funkcja jest dostępna w systemie Windows Server w wersji 2019 lub nowszej. Można je dodać do starszych wersji systemu Windows przy użyciu rozszerzenia maszyny wirtualnej.

W poniższych przykładach są używane zmienne. Zmienne w środowisku można ustawić w następujący sposób.

Powłoka Przykład
Bash/ZSH myResourceGroup='resGroup10'
PowerShell $myResourceGroup='resGroup10'

Włączanie protokołu SSH

Najpierw należy włączyć protokół SSH na maszynie z systemem Windows.

Wdróż rozszerzenie SSH dla systemu Windows. Rozszerzenie zapewnia zautomatyzowaną instalację rozwiązania Win32 OpenSSH, podobnie jak w przypadku włączania możliwości w nowszych wersjach systemu Windows. Użyj poniższych przykładów, aby wdrożyć rozszerzenie.

az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0

Otwieranie portu TCP

Upewnij się, że odpowiedni port (domyślnie TCP 22) jest otwarty, aby umożliwić łączność z maszyną wirtualną.

az network nsg rule create -g $myResourceGroup --nsg-name $myNSG -n allow-SSH --priority 1000 --source-address-prefixes 208.130.28.4/32 --destination-port-ranges 22 --protocol TCP
  • 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 pozycji Publiczny adres IP zostanie wyświetlony adres IP, maszyna wirtualna ma publiczny adres IP. 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 Essentials sprawdź, czy stan maszyny wirtualnej to Uruchomiono. Aby uruchomić maszynę wirtualną, wybierz pozycję Rozpocznij w górnej części strony.

Uwierzytelnianie

Możesz uwierzytelnić się na maszynach z systemem Windows przy użyciu nazwy użytkownika i hasła lub kluczy SSH. Platforma Azure nie obsługuje automatycznej aprowizacji kluczy publicznych na maszynach z systemem Windows, ale można skopiować klucz przy użyciu rozszerzenia RunCommand.

Omówienie protokołu SSH i kluczy

SSH to szyfrowany protokół połączenia, który zapewnia bezpieczne logowania za pośrednictwem niezabezpieczonych połączeń. Mimo że protokół SSH zapewnia zaszyfrowane połączenie, używanie haseł z połączeniami 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.

  • Klucz publiczny jest umieszczany na maszynie wirtualnej.

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

Gdy używasz klienta SSH do nawiązywania połączenia z maszyną wirtualną (która ma klucz publiczny), zdalna maszyna wirtualna testuje klienta, 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ć jednej pary kluczy publicznych-prywatnych, aby uzyskać dostęp do wielu maszyn wirtualnych i usług platformy Azure. Nie potrzebujesz oddzielnej pary kluczy dla każdej maszyny wirtualnej lub usługi, do której chcesz uzyskać dostęp.

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 obsługuje obecnie pary kluczy publicznych-prywatnych RSA protokołu SSH 2 (SSH-2) o minimalnej długości 2048 bitów. Inne formaty kluczy, takie jak ED25519 i ECDSA, nie są obsługiwane.

Skopiuj klucz publiczny przy użyciu rozszerzenia RunCommand.

Rozszerzenie RunCommand umożliwia łatwe skopiowanie klucza publicznego na maszyny z systemem Windows i upewnienie się, że plik ma poprawne uprawnienia.

az vm run-command invoke -g $myResourceGroup -n $myVM --command-id RunPowerShellScript --scripts "MYPUBLICKEY | Add-Content 'C:\ProgramData\ssh\administrators_authorized_keys' -Encoding UTF8;icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F'"

Połączenie przy użyciu interfejsu wiersza polecenia Az

Połączenie do maszyn z systemem Windows przy użyciu Az SSH poleceń.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername

Istnieje również możliwość utworzenia tunelu sieciowego dla określonych portów TCP za pośrednictwem połączenia SSH. Dobrym przypadkiem użycia jest pulpit zdalny, który domyślnie ma port 3389.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389

Połączenie z witryny Azure Portal

  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.

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.