Połączenie do maszyny wirtualnej przy użyciu usługi Bastion i klienta natywnego systemu Windows
Ten artykuł ułatwia nawiązywanie połączenia z maszyną wirtualną w sieci wirtualnej przy użyciu natywnego klienta (SSH lub RDP) na lokalnym komputerze z systemem Windows. Funkcja natywnego klienta umożliwia nawiązywanie połączenia z docelowymi maszynami wirtualnymi za pośrednictwem usługi Bastion przy użyciu interfejsu wiersza polecenia platformy Azure i rozszerza opcje logowania w celu uwzględnienia lokalnej pary kluczy SSH i identyfikatora Entra firmy Microsoft. Aby uzyskać więcej informacji i kroków konfigurowania usługi Bastion dla natywnych połączeń klienckich, zobacz Konfigurowanie usługi Bastion dla natywnych połączeń klienckich. Połączenie ions za pośrednictwem klienta natywnego wymagają jednostki SKU usługi Bastion w warstwie Standardowa lub nowszej.
Po skonfigurowaniu usługi Bastion dla natywnej obsługi klienta można nawiązać połączenie z maszyną wirtualną przy użyciu natywnego klienta systemu Windows. Metoda używana do nawiązywania połączenia zależy od klienta, z którego nawiązujesz połączenie, i maszyny wirtualnej, z którą nawiązujesz połączenie. Na poniższej liście przedstawiono niektóre z dostępnych sposobów nawiązywania połączenia z poziomu klienta natywnego systemu Windows. Zobacz Połączenie do maszyn wirtualnych, aby uzyskać pełną listę zawierającą dostępne kombinacje połączeń/funkcji klienta.
- Połączenie do maszyny wirtualnej z systemem Windows przy użyciu polecenia az network bastion rdp.
- Połączenie do maszyny wirtualnej z systemem Linux przy użyciu polecenia az network bastion ssh.
- Połączenie do maszyny wirtualnej przy użyciu polecenia az network bastion tunnel.
- Przekazywanie i pobieranie plików za pośrednictwem protokołu RDP.
- Przekazywanie plików za pośrednictwem protokołu SSH przy użyciu polecenia az network bastion tunnel.
Wymagania wstępne
Przed rozpoczęciem sprawdź, czy masz następujące wymagania wstępne:
- Zainstalowano najnowszą wersję poleceń interfejsu wiersza polecenia (wersja 2.32 lub nowsza). Interfejs wiersza polecenia dla usługi Bastion można zaktualizować przy użyciu polecenia
az extension update --name bastion
. Aby uzyskać informacje o instalowaniu poleceń interfejsu wiersza polecenia, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure i Rozpoczynanie pracy z interfejsem wiersza polecenia platformy Azure. - Usługa Azure Bastion jest już wdrożona i skonfigurowana dla sieci wirtualnej. Aby uzyskać instrukcje, zobacz Konfigurowanie usługi Bastion dla natywnych połączeń klienckich.
- Maszyna wirtualna w sieci wirtualnej.
- Identyfikator zasobu maszyny wirtualnej. Identyfikator zasobu można łatwo znaleźć w witrynie Azure Portal. Przejdź do strony Przegląd maszyny wirtualnej i wybierz link Widok JSON, aby otworzyć plik JSON zasobu. Skopiuj identyfikator zasobu w górnej części strony do schowka, aby użyć go później podczas nawiązywania połączenia z maszyną wirtualną.
- Jeśli planujesz zalogować się do maszyny wirtualnej przy użyciu poświadczeń firmy Microsoft Entra, upewnij się, że maszyna wirtualna jest skonfigurowana przy użyciu jednej z następujących metod:
- Włącz logowanie microsoft Entra dla maszyny wirtualnej z systemem Windows lub maszyny wirtualnej z systemem Linux.
- Skonfiguruj maszynę wirtualną z systemem Windows, aby została przyłączona do firmy Microsoft.
- Skonfiguruj maszynę wirtualną z systemem Windows tak, aby została dołączona hybrydowa firma Microsoft Entra.
Weryfikowanie ról i portów
Sprawdź, czy następujące role i porty zostały skonfigurowane w celu nawiązania połączenia z maszyną wirtualną.
Wymagane role
Rola czytelnika na maszynie wirtualnej.
Rola czytelnika na karcie sieciowej z prywatnym adresem IP maszyny wirtualnej.
Rola czytelnika w zasobie usługi Azure Bastion.
Jeśli używasz metody logowania użytkownika usługi Microsoft Entra, Administracja istrator logowania lub logowania użytkownika maszyny wirtualnej. Musisz to zrobić tylko wtedy, gdy włączysz logowanie firmy Microsoft Entra przy użyciu procesów opisanych w jednym z następujących artykułów:
Porty
Aby nawiązać połączenie z maszyną wirtualną z systemem Linux przy użyciu natywnej obsługi klienta, musisz mieć otwarte następujące porty na maszynie wirtualnej z systemem Linux:
- Port przychodzący: SSH (22) lub
- Port przychodzący: wartość niestandardowa (następnie należy określić ten port niestandardowy podczas nawiązywania połączenia z maszyną wirtualną za pośrednictwem usługi Azure Bastion)
Aby nawiązać połączenie z maszyną wirtualną z systemem Windows przy użyciu natywnej obsługi klienta, musisz mieć otwarte następujące porty na maszynie wirtualnej z systemem Windows:
- Port przychodzący: RDP (3389) lub
- Port przychodzący: wartość niestandardowa (następnie należy określić ten port niestandardowy podczas nawiązywania połączenia z maszyną wirtualną za pośrednictwem usługi Azure Bastion)
Aby dowiedzieć się, jak najlepiej skonfigurować sieciowe grupy zabezpieczeń za pomocą usługi Azure Bastion, zobacz Praca z dostępem sieciowej grupy zabezpieczeń i usługą Azure Bastion.
Łączenie z maszyną wirtualną
Kroki opisane w poniższych sekcjach ułatwiają nawiązywanie połączenia z maszyną wirtualną z natywnego klienta systemu Windows przy użyciu polecenia az network bastion .
Połączenie RDP z maszyną wirtualną z systemem Windows
Gdy użytkownik nawiązuje połączenie z maszyną wirtualną z systemem Windows za pośrednictwem protokołu RDP, musi mieć prawa do docelowej maszyny wirtualnej. Jeśli użytkownik nie jest administratorem lokalnym, dodaj użytkownika do grupy Użytkownicy pulpitu zdalnego na docelowej maszynie wirtualnej.
Zaloguj się do konta platformy Azure przy użyciu polecenia
az login
. Jeśli masz więcej niż jedną subskrypcję, możesz je wyświetlić przy użyciu usługiaz account list
i wybrać subskrypcję zawierającą zasób usługi Bastion przy użyciu poleceniaaz account set --subscription "<subscription ID>"
.Aby nawiązać połączenie za pośrednictwem protokołu RDP, użyj poniższego przykładu.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
Po uruchomieniu polecenia zostanie wyświetlony monit o wprowadzenie poświadczeń. Możesz użyć lokalnej nazwy użytkownika i hasła lub poświadczeń usługi Microsoft Entra. Po zalogowaniu się do docelowej maszyny wirtualnej klient natywny na komputerze zostanie otwarty z sesją maszyny wirtualnej za pośrednictwem programu MSTSC.
Ważne
Połączenie zdalne z maszynami wirtualnymi, które są przyłączone do identyfikatora Entra firmy Microsoft, jest dozwolone tylko z komputerów z systemem Windows 10 lub nowszym zarejestrowanych przez firmę Microsoft Entra (począwszy od systemu Windows 10 20H1), przyłączonych do firmy Microsoft lub przyłączonych hybrydowych firmy Microsoft Entra do tego samego katalogu co maszyna wirtualna.
Określanie metody uwierzytelniania
Opcjonalnie możesz również określić metodę uwierzytelniania w ramach polecenia .
- Uwierzytelnianie Entra firmy Microsoft: w przypadku systemu Windows 10 w wersji 20H2+, Windows 11 21H2+ i Windows Server 2022 użyj polecenia
--enable-mfa
. Aby uzyskać więcej informacji, zobacz az network bastion rdp — parametry opcjonalne.
Określanie portu niestandardowego
Port niestandardowy można określić podczas nawiązywania połączenia z maszyną wirtualną z systemem Windows za pośrednictwem protokołu RDP.
Jednym ze scenariuszy, w których może to być szczególnie przydatne, byłoby nawiązanie połączenia z maszyną wirtualną z systemem Windows za pośrednictwem portu 22. Jest to potencjalne obejście ograniczenia polecenia az network bastion ssh , które nie może być używane przez klienta natywnego systemu Windows do nawiązywania połączenia z maszyną wirtualną z systemem Windows.
Aby określić port niestandardowy, uwzględnij pole --resource-port w poleceniu logowania, jak pokazano w poniższym przykładzie.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --resource-port "22"
Połączenie RDP z adresem IP maszyny wirtualnej z systemem Windows
Możesz również nawiązać połączenie z prywatnym adresem IP maszyny wirtualnej, a nie z identyfikatorem zasobu. Uwierzytelnianie firmy Microsoft i niestandardowe porty i protokoły nie są obsługiwane w przypadku korzystania z tego typu połączenia. Aby uzyskać więcej informacji na temat połączeń opartych na adresach IP, zobacz Połączenie do maszyny wirtualnej — adres IP.
az network bastion
Za pomocą polecenia zastąp ciąg --target-resource-id
i --target-ip-address
określonym adresem IP, aby nawiązać połączenie z maszyną wirtualną.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>"
Połączenie SSH z maszyną wirtualną z systemem Linux
Zaloguj się do konta platformy Azure przy użyciu polecenia
az login
. Jeśli masz więcej niż jedną subskrypcję, możesz je wyświetlić przy użyciu usługiaz account list
i wybrać subskrypcję zawierającą zasób usługi Bastion przy użyciu poleceniaaz account set --subscription "<subscription ID>"
.Zaloguj się do docelowej maszyny wirtualnej z systemem Linux przy użyciu jednej z następujących przykładowych opcji. Jeśli chcesz określić niestandardową wartość portu, dołącz pole --resource-port w polem logowania.
Microsoft Entra ID:
Jeśli logujesz się do maszyny wirtualnej z obsługą logowania firmy Microsoft, użyj następującego polecenia. Aby uzyskać więcej informacji, zobacz Maszyny wirtualne z systemem Linux platformy Azure i identyfikator entra firmy Microsoft.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
Para kluczy SSH:
Rozszerzenie można zainstalować, uruchamiając polecenie
az extension add --name ssh
. Aby zalogować się przy użyciu pary kluczy SSH, użyj poniższego przykładu.az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Nazwa użytkownika/hasło:
Jeśli logujesz się przy użyciu lokalnej nazwy użytkownika i hasła, użyj następującego polecenia. Następnie zostanie wyświetlony monit o podanie hasła dla docelowej maszyny wirtualnej.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"
Po zalogowaniu się do docelowej maszyny wirtualnej klient natywny na komputerze zostanie otwarty z sesją maszyny wirtualnej przy użyciu rozszerzenia interfejsu wiersza polecenia SSH (az ssh)..
Połączenie SSH z adresem IP maszyny wirtualnej z systemem Linux
Możesz również nawiązać połączenie z prywatnym adresem IP maszyny wirtualnej, a nie z identyfikatorem zasobu. Uwierzytelnianie firmy Microsoft i niestandardowe porty i protokoły nie są obsługiwane w przypadku korzystania z tego typu połączenia. Aby uzyskać więcej informacji na temat połączeń opartych na adresach IP, zobacz Połączenie do maszyny wirtualnej — adres IP.
az network bastion
Za pomocą polecenia zastąp ciąg --target-resource-id
i --target-ip-address
określonym adresem IP, aby nawiązać połączenie z maszyną wirtualną.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Połączenie do maszyny wirtualnej — polecenie tunelu
Polecenie az network bastion tunnel to inny sposób, w jaki można nawiązać połączenie z maszynami wirtualnymi. Korzystając z tego polecenia, można wykonać następujące czynności:
- Połączenie z klientów natywnych na komputerach lokalnych innych niż Windows. (Na przykład komputer z systemem Linux).
- Połączenie do maszyny wirtualnej przy użyciu protokołu SSH lub RDP. (Tunel bastionu nie przekazuje serwerów internetowych ani hostów).
- Użyj wybranego klienta natywnego.
- Przekaż pliki do docelowej maszyny wirtualnej z komputera lokalnego. Pobieranie pliku z docelowej maszyny wirtualnej do klienta lokalnego nie jest obecnie obsługiwane dla tego polecenia.
Ograniczenia:
- Logowanie przy użyciu klucza prywatnego SSH przechowywanego w usłudze Azure Key Vault nie jest obsługiwane w tej funkcji. Przed zalogowaniem się do maszyny wirtualnej z systemem Linux przy użyciu pary kluczy SSH pobierz klucz prywatny do pliku na komputerze lokalnym.
- Ta funkcja nie jest obsługiwana w usłudze Cloud Shell.
Kroki:
Zaloguj się do konta platformy Azure przy użyciu polecenia
az login
. Jeśli masz więcej niż jedną subskrypcję, możesz je wyświetlić przy użyciu usługiaz account list
i wybrać subskrypcję zawierającą zasób usługi Bastion przy użyciu poleceniaaz account set --subscription "<subscription ID>"
.Otwórz tunel do docelowej maszyny wirtualnej.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Połączenie do docelowej maszyny wirtualnej przy użyciu protokołu SSH lub RDP, wybranego klienta natywnego i portu komputera lokalnego określonego w poprzednim kroku.
Na przykład możesz użyć następującego polecenia, jeśli na komputerze lokalnym jest zainstalowany klient OpenSSH:
ssh <username>@127.0.0.1 -p <LocalMachinePort>
Tunel do adresu IP maszyny wirtualnej
Możesz również nawiązać połączenie z prywatnym adresem IP maszyny wirtualnej, a nie z identyfikatorem zasobu. Uwierzytelnianie firmy Microsoft i niestandardowe porty i protokoły nie są obsługiwane w przypadku korzystania z tego typu połączenia. Aby uzyskać więcej informacji na temat połączeń opartych na adresach IP, zobacz Połączenie do maszyny wirtualnej — adres IP.
az network bastion tunnel
Za pomocą polecenia zastąp ciąg --target-resource-id
i --target-ip-address
określonym adresem IP, aby nawiązać połączenie z maszyną wirtualną.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Tunel z wieloma połączeniami
Dodaj następujący kod do pliku $HOME.ssh\config.
Host tunneltunnel HostName 127.0.0.1 Port 2222 User mylogin StrictHostKeyChecking=No UserKnownHostsFile=\\.\NUL
Dodaj połączenie tunelu do ustanowionego połączenia tunelu.
az network bastion tunnel --name mybastion --resource-group myrg --target-resource-id /subscriptions/<mysubscription>/resourceGroups/myrg/providers/Microsoft.Compute/virtualMachines/myvm --resource-port 22 --port 22
Utwórz tunel SSH w tunelu bastionu.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Użyj programu VS Code, aby nawiązać połączenie z tunelem.