共用方式為


使用 Bastion 和 Windows 原生用戶端連線到 VM

本文可協助您使用本機 Windows 電腦上的原生用戶端 (SSH 或 RDP) 連線到 VNet 中的 VM。 原生用戶端功能可讓您使用 Azure CLI 透過 Bastion 連線到目標 VM,並展開登入選項,以包含本地 SSH 金鑰組和 Microsoft Entra ID。 如需為原生用戶端連線設定 Bastion 的詳細資訊和步驟,請參閱針對原生用戶端連線設定 Bastion。 透過原生用戶端 連線 需要 Bastion Standard SKU 或更高版本。

圖表顯示透過原生用戶端的連線。

設定 Bastion 以取得原生用戶端支援後,您就可以使用原生 Windows 用戶端連線到 VM。 您用來連線的方法取決於您要從中連線的用戶端,以及您要連線的目標 VM。 下列清單顯示您可以從 Windows 原生用戶端連線的一些可用方式。 如需顯示可用用戶端連線/功能組合的完整清單,請參閱連線至 VM

  • 使用 az network bastion rdp 連線到 Windows VM。
  • 使用 az network bastion ssh 連線到 Linux VM。
  • 使用 az network bastion tunnel 連線到 VM。
  • 透過 RDP 上傳及下載檔案
  • 使用 az network bastion tunnel 透過 SSH 上傳檔案。

必要條件

在開始之前,請先確定您具備下列必要條件:

驗證角色和連接埠

確認已設定下列角色和連接埠以連線至 VM。

所需角色

  • 虛擬機器上的讀取者角色。

  • 虛擬機器的私人 IP 位址與 NIC 上的讀取者角色。

  • Azure Bastion 資源上的讀者角色。

  • 如果您使用 Microsoft Entra 登入方法,虛擬機器系統管理員登入或虛擬機器使用者登入角色。 如果您使用下列其中一篇文章中所述的程序來啟用 Microsoft Entra 登入,您只需要執行此動作:

連接埠

若要使用原生用戶端支援連線到 Linux VM,您必須在 Linux VM 上開啟下列連接埠:

  • 輸入連接埠:SSH (22) 或
  • 輸入連接埠:自訂值 (透過 Azure Bastion 連線到 VM 後,您就需要指定此自訂連接埠)

若要使用原生用戶端支援連線到 Windows VM,您必須在 Windows VM 上開啟下列連接埠:

  • 輸入連接埠:RDP (3389) 或
  • 輸入連接埠:自訂值 (透過 Azure Bastion 連線到 VM 後,您就需要指定此自訂連接埠)

若要瞭解如何使用 Azure Bastion 來設定 NSG,請參閱使用 NSG 存取和 Azure Bastion

連線至 VM

下列各節中的步驟可協助您使用 az network bastion 命令,從 Windows 原生用戶端連線到 VM。

RDP 至 Windows VM

當使用者透過 RDP 連線到 Windows VM 時,他們必須在目標 VM 上具有權限。 如果使用者不是本機管理員,請將使用者新增至目標 VM 上的遠端桌面使用者群組。

  1. 使用 az login 登入 Azure 帳戶。 如果有多個訂用帳戶,您可以使用 az account list 檢視這些訂用帳戶,並使用 az account set --subscription "<subscription ID>" 選取內含 Bastion 資源的訂用帳戶。

  2. 若要透過 RDP 連線,請使用下列範例。

    az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
    
  3. 執行命令之後,系統會提示您輸入認證。 您可使用本機使用者名稱和密碼,或 Microsoft Entra 認證。 登入目標 VM 之後,電腦上的原生用戶端就會透過 MSTSC 開啟 VM 工作階段。

    重要

    若要從 Windows 10 或更新版電腦遠端連線至已加入 Microsoft Entra ID 的 VM,這些電腦必須已註冊 Microsoft Entra (從 Windows 10 20H1 開始)、已加入 Microsoft Entra,或已加入目錄與 VM 相同的混合式 Microsoft Entra。

指定驗證方法

您也可以選擇性地將驗證方法指定為命令的一部分。

  • Microsoft Entra 驗證:針對 Windows 10 版本 20H2+、Windows 11 21H2+ 和 Windows Server 2022,請使用 --enable-mfa。 如需詳細資訊,請參閱 az network bastion rdp - 選擇性參數

指定自訂連接埠

您可以在透過 RDP 連線到 Windows VM 時指定自訂連接埠。

這種方式可能會特別有用的其中一個案例,就是透過連接埠 22 連線到 Windows VM。 這是 az network bastion ssh 命令限制的潛在因應措施,Windows 原生用戶端無法使用其連線到 Windows VM。

若要指定自訂連接埠,請在登入命令中包含欄位 --resource-port,如下列範例中所示。

az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --resource-port "22"

RDP 至 Windows VM IP 位址

您也可以連線到 VM 私人 IP 位址 (而不是資源識別碼)。 使用這類連線時,不支援 Microsoft Entra 驗證和自訂連接埠和通訊協定。 如需 IP 型連線的詳細資訊,請參閱連線至 VM - IP 位址

使用 az network bastion 命令,將 --target-resource-id 取代為 --target-ip-address 以及指定的 IP 位址以連線至 VM。

az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>"

透過 SSH 連線至 Linux VM

  1. 使用 az login 登入 Azure 帳戶。 如果有多個訂用帳戶,您可以使用 az account list 檢視這些訂用帳戶,並使用 az account set --subscription "<subscription ID>" 選取內含 Bastion 資源的訂用帳戶。

  2. 使用下列其中一個範例選項登入目標 Linux VM。 如果您想要指定自訂連接埠值,請在登入命令中包含欄位 --resource-port

    Microsoft Entra ID:

    如果您要登入已啟用 Microsoft Entra 登入的 VM,請使用下列命令。 如需詳細資訊,請參閱 Azure Linux VM 和 Microsoft Entra ID

    az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
    

    SSH 金鑰組:

    您可以藉由執行 az extension add --name ssh 來安裝延伸模組。 若要使用 SSH 金鑰組登入,請使用下列範例。

    az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
    

    使用者名稱/密碼:

    如果您要使用本地使用者名稱和密碼登入,請使用下列命令。 然後系統會提示您輸入目標 VM 的密碼。

    az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"
    
  3. 登入目標 VM 之後,電腦上的原生用戶端就會使用 SSH CLI 延伸模組 (az ssh) 開啟 VM 工作階段。

透過 SSH 連線至 Linux VM IP 位址

您也可以連線到 VM 私人 IP 位址 (而不是資源識別碼)。 使用這類連線時,不支援 Microsoft Entra 驗證和自訂連接埠和通訊協定。 如需 IP 型連線的詳細資訊,請參閱連線至 VM - IP 位址

使用 az network bastion 命令,將 --target-resource-id 取代為 --target-ip-address 以及指定的 IP 位址以連線至 VM。

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

連線到 VM - 通道命令

az network bastion tunnel 命令是您可以連線到 VM 的另一種方式。 使用此命令時,您可以執行下列動作:

  • Windows 本機電腦上透過原生用戶端進行連線。 (例如,Linux 電腦。)
  • 使用 SSH 或 RDP 連線到 VM。 (堡壘通道不會轉送網頁伺服器或主機。)
  • 使用您選擇的原生用戶端。
  • 從本機電腦將檔案上傳至目標 VM。 此命令目前不支援將檔案從目標 VM 下載至本機用戶端。

限制:

  • 此功能不支援使用儲存在 Azure 金鑰保存庫的 SSH 私密金鑰進行登入。 使用 SSH 金鑰組登入 Linux VM 之前,請先將私密金鑰下載到本機電腦上的檔案。
  • Cloud Shell 不支援此功能。

步驟:

  1. 使用 az login 登入 Azure 帳戶。 如果有多個訂用帳戶,您可以使用 az account list 檢視這些訂用帳戶,並使用 az account set --subscription "<subscription ID>" 選取內含 Bastion 資源的訂用帳戶。

  2. 開啟目標 VM 的通道。

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. 使用 SSH 或 RDP、您所選的原生用戶端,以及您在上一步指定的本機電腦連接埠連線到目標 VM。

    例如,如果您已在本機電腦上安裝 OpenSSH 用戶端,就可以使用下列命令:

    ssh <username>@127.0.0.1 -p <LocalMachinePort>
    

與 VM IP 位址的通道

您也可以連線到 VM 私人 IP 位址 (而不是資源識別碼)。 使用這類連線時,不支援 Microsoft Entra 驗證和自訂連接埠和通訊協定。 如需 IP 型連線的詳細資訊,請參閱連線至 VM - IP 位址

使用 az network bastion tunnel 命令,將 --target-resource-id 取代為 --target-ip-address 以及指定的 IP 位址以連線至 VM。

az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"

多連線通道

  1. 在 $HOME.ssh\config 中新增以下內容。

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. 將通道連線新增至已建立的通道連線。

    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. 在堡壘通道中建立 SSH 通道。

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. 使用 VS Code 連線到通道連線。

下一步

上傳或下載檔案