使用本机客户端进行文件传输

Azure Bastion 支持使用 Bastion 和本机 RDP 或本机 SSH 客户端在目标 VM 和本地计算机之间传输文件。 若要详细了解本机客户端支持,请参阅配置 Bastion 本机客户端支持。 尽管可以使用第三方客户端和工具上传或下载文件,但本文重点介绍使用受支持的本机客户端。

  • 只支持使用本机客户端进行文件传输。 无法使用 PowerShell 或通过 Azure 门户上传或下载文件。
  • 可以使用 Windows 本机客户端和 RDP 上传和下载文件。
  • 可以使用所选的本机客户端以及 RDP 或 SSH 将文件上传和下载到 VM。
  • 此功能需要标准 SKU。 基本 SKU 不支持使用本机客户端。

先决条件

  • 安装 Azure CLI(版本 2.32 或更高版本)运行本文中的命令。 有关安装 CLI 命令的信息,请参阅安装 Azure CLIAzure CLI 入门
  • 获取要连接的 VM 的资源 ID。 可在 Azure 门户中轻松找到资源 ID。 转到 VM 的“概述”页并选择“JSON 视图”链接以打开“资源 JSON”。 将页面顶部的资源 ID 复制到剪贴板,以便稍后在连接到 VM 时使用。

上传和下载文件 - Windows 客户端和 RDP

当使用本机 Windows 客户端和 RDP 从 Windows 本地计算机连接到目标虚拟机时,本部分中的步骤适用。 az network bastion rdp 命令使用本机客户端 MSTSC。 连接到目标 VM 后,可以单击鼠标右键,然后选择“复制”和“粘贴”来上传和下载文件。 若要详细了解此命令以及连接方法,请参阅从 Windows 本机客户端连接

注意

不支持使用此方法通过 SSH 传输文件。 请改用 az network bastion tunnel 命令来通过 SSH 上传文件。

  1. 登录 Azure 帐户。 如果你有多个订阅,请选择包含 Bastion 资源的订阅。

    注意

    在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud

    az cloud set -n AzureChinaCloud
    az login
    # az cloud set -n AzureCloud   //means return to Public Azure.
    az account list
    az account set --subscription "<subscription ID>"
    
  2. 使用以下命令通过 RDP 登录到目标 VM。 你可以使用本地用户名和密码,也可以使用 Microsoft Entra 凭据。 若要详细了解如何使用 Microsoft Entra ID 登录到 Azure Windows VM,请参阅 Azure Windows VM 和 Microsoft Entra ID

    az network bastion rdp --name "<BastionName>" --resource-group "<BastionResourceGroupName>" --target-resource-id "<VMResourceId>"
    
  3. 登录到目标 VM 后,计算机上的本机客户端将与 VM 会话一起打开。 现在可用在 VM 和本地计算机之间传输文件,方法是点击右键,然后选择“复制”和“粘贴”。

上传和下载文件 - SSH 和 RDP

本部分中的步骤适用于 Windows 以外的本机客户端,以及要通过 SSH 连接以上传文件的 Windows 本机客户端。 本部分帮助你使用 az network bastion tunnel 命令,通过 SSH 或 RDP 将文件从本地计算机上传或下载到目标 VM。 若要详细了解此隧道命令以及连接方法,请参阅从 Linux 本机客户端连接

  1. 登录 Azure 帐户。 如果你有多个订阅,请选择包含 Bastion 资源的订阅。

    az cloud set -n AzureChinaCloud
    az login
    # az cloud set -n AzureCloud   //means return to Public Azure.
    az account list
    az account set --subscription "<subscription ID>"
    
  2. 使用以下命令打开与目标 VM 的隧道:

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. 打开第二个命令提示符,通过隧道连接到目标 VM。 在此第二个命令提示符窗口中,可以指定上传或下载文件。 有关 SCP 命令和参数的列表,请参阅 SCP

    例如,你可以使用以下命令将文件从本地计算机上传到目标 VM:

    scp -P <LocalMachinePort>  <local machine file path>  <username>@127.0.0.1:<target VM file path>
    

后续步骤

有关更多 VM 功能,请参阅关于 VM 连接和功能