使用 Azure Bastion 创建与 Windows VM 的 SSH 连接

本文介绍如何使用 Azure Bastion 创建与Windows虚拟机的安全 SSH 连接。 可以通过Azure门户(基于浏览器)进行连接。 使用Azure Bastion时,虚拟机不需要客户端、代理或其他软件。 Azure Bastion安全地连接到虚拟网络中的所有虚拟机,而无需向公共 Internet 公开 RDP/SSH 端口。 有关详细信息,请参阅 什么是 Azure Bastion?

有关与 Windows 虚拟机的 RDP 连接,请参阅 创建到 Windows VM 的 RDP 连接。 有关使用 Azure CLI (包括 SSH 隧道)进行本地客户端连接,请参阅使用本地客户端连接到 VM

下图显示了使用 SSH 连接的专用部署体系结构。

Diagram,显示 Azure Bastion architecture.

先决条件

在开始之前,请验证是否满足以下条件:

  • 部署在虚拟机所在虚拟网络中的一个 Azure Bastion 主机,或在一个对等虚拟网络中部署。 若要设置 Bastion 主机,请参阅 创建堡垒主机。 需要 Standard SKU 或更高版本才可以进行 SSH 连接到 Windows VM。

    连接方法 最小 SKU 其他配置
    Azure门户(浏览器) 标准 没有
  • 在虚拟网络中运行Windows Server 2019或更高版本的Windows虚拟机。

  • OpenSSH Server 安装在 Windows 虚拟机上运行。 Azure Bastion仅支持使用 OpenSSH 通过 SSH 连接到 Windows VM。

  • 默认情况下,Azure Bastion使用 SSH 端口 22。 自定义端口需要 标准 SKU 或更高版本

  • 所需角色:

    • 虚拟机上的读者角色。
    • 具有虚拟机 IP 的 NIC 上的读取者角色。
    • Azure Bastion 资源的读取者角色。
    • 目标虚拟机所属虚拟网络上的读取者角色(如果 Bastion 部署在对等连接的虚拟网络中)。

有关其他要求,请参阅 Azure Bastion FAQ

身份验证方法

通过 Azure Bastion 连接到 Windows 虚拟机的 SSH 连接可以使用以下身份验证方法。 选择身份验证方法选项卡以查看相应的步骤。

身份验证方法 最小 SKU
用户名和密码 标准
本地文件中的 SSH 私钥 标准
来自Azure 密钥保管库的密码 标准
来自Azure 密钥保管库的 SSH 私钥 标准

注意

Microsoft Entra ID身份验证Kerberos 身份验证不支持 SSH 连接到 Windows VM。 这些身份验证方法可用于 RDP 连接

使用 SSH 连接到虚拟机

  1. Azure 门户中,选择虚拟机。 在左窗格中,选择 “连接”,然后选择 “Bastion”。

  2. “连接设置”中,选择 SSH 作为协议,如果将其从默认值 22 更改,请输入端口号。

  3. 选择身份验证方法并配置相应选项卡中所示的设置。然后选择 “连接 ”以在新浏览器选项卡中打开与虚拟机的 SSH 连接。

若要使用用户名和密码进行身份验证,请配置以下设置:

设置 价值
身份验证类型 从下拉列表中选择 VM 密码
用户名 输入用户名。
VM 密码 输入密码。

局限性

  • Connection 方法:通过 Azure 门户仅支持与 Windows VM 的 SSH 连接。 SSH 不支持使用原生客户端(az network bastion ssh)和基于 IP 的连接来连接到 Windows 虚拟机。 有关通过端口 22 使用 RDP 的解决方法,请参阅 使用本机客户端连接到 VM
  • Microsoft Entra ID: Windows VM 的 SSH 连接不支持 Microsoft Entra 身份验证。 有关Entra ID身份验证详细信息,请参阅 About Microsoft Entra ID 身份验证
  • Kerberos: SSH 连接不支持 Kerberos 身份验证。 有关具有 RDP 连接的 Kerberos,请参阅 配置 Kerberos 身份验证
  • 文件传输: 文件传输不适用于通过门户的 SSH 连接。 若要传输文件,请使用 本机客户端 RDP 连接
  • 键格式: SSH 私钥必须采用 RSA 格式(-----BEGIN RSA PRIVATE KEY-----)。

后续步骤