Udostępnij za pośrednictwem


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.

Diagram przedstawia połączenie za pośrednictwem klienta natywnego.

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:

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

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.

  1. 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ługi az account list i wybrać subskrypcję zawierającą zasób usługi Bastion przy użyciu polecenia az account set --subscription "<subscription ID>".

  2. 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>"
    
  3. 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

  1. 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ługi az account list i wybrać subskrypcję zawierającą zasób usługi Bastion przy użyciu polecenia az account set --subscription "<subscription ID>".

  2. 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>"
    
  3. 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:

  1. 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ługi az account list i wybrać subskrypcję zawierającą zasób usługi Bastion przy użyciu polecenia az account set --subscription "<subscription ID>".

  2. 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>"
    
  3. 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

  1. 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
    
  2. 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
    
  3. Utwórz tunel SSH w tunelu bastionu.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Użyj programu VS Code, aby nawiązać połączenie z tunelem.

Następne kroki

Przekazywanie lub pobieranie plików