Połączenie do maszyny wirtualnej przy użyciu usługi Bastion i natywnego klienta systemu Linux
Ten artykuł ułatwia nawiązywanie połączenia za pośrednictwem usługi Azure Bastion z maszyną wirtualną w sieci wirtualnej przy użyciu natywnego klienta na lokalnym komputerze z systemem Linux. 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 Linux. 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 Linux. 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 Linux przy użyciu polecenia az network bastion ssh.
- Połączenie do maszyny wirtualnej z systemem Windows przy użyciu polecenia az network bastion tunnel.
- Połączenie do dowolnej maszyny wirtualnej przy użyciu polecenia az network bastion tunnel.
- Przekaż pliki do docelowej maszyny wirtualnej za pośrednictwem protokołu SSH przy użyciu polecenia az network bastion tunnel. Pobieranie pliku z docelowej maszyny wirtualnej do klienta lokalnego nie jest obecnie obsługiwane dla tego polecenia.
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.
Nawiązywanie połączenia z maszyną wirtualną z systemem Linux
Kroki opisane w poniższych sekcjach ułatwiają nawiązywanie połączenia z maszyną wirtualną z systemem Linux z natywnego klienta systemu Linux przy użyciu polecenia az network bastion . To rozszerzenie można zainstalować, uruchamiając polecenie az extension add --name bastion
.
Podczas nawiązywania połączenia przy użyciu tego polecenia transfery plików nie są obsługiwane. Jeśli chcesz przekazać pliki, połącz się za pomocą polecenia az network bastion tunnel .
To polecenie umożliwia wykonanie następujących czynności:
- Połączenie do maszyny wirtualnej z systemem Linux przy użyciu protokołu SSH.
- Uwierzytelnianie za pomocą identyfikatora entra firmy Microsoft
- Połączenie do współbieżnych sesji maszyn wirtualnych w sieci wirtualnej.
Aby się zalogować, użyj jednego z poniższych przykładów. Po zalogowaniu się do docelowej maszyny wirtualnej klient natywny na komputerze zostanie otwarty z sesją maszyny wirtualnej.
Para kluczy SSH
Aby zalogować się do maszyny wirtualnej 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>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Uwierzytelnianie Microsoft Entra
Jeśli logujesz się do maszyny wirtualnej z obsługą logowania firmy Microsoft, użyj poniższego przykładu. 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"
Nazwa użytkownika/hasło
Jeśli logujesz się do maszyny wirtualnej przy użyciu lokalnej nazwy użytkownika i hasła, użyj poniższego przykładu. 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łączenie SSH z adresem IP maszyny wirtualnej z systemem Linux
Zamiast identyfikatora zasobu można nawiązać połączenie z prywatnym adresem IP maszyny wirtualnej. Należy pamiętać, że uwierzytelnianie entra 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ą. W poniższym przykładzie użyto --ssh-key dla metody uwierzytelniania.
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.