使用 Azure Bastion 创建到 Windows VM 的 SSH 连接
本文演示如何直接通过 Azure 门户安全无缝地与 Azure 虚拟网络中的 Windows VM 建立 SSH 连接。 使用 Azure Bastion 时,VM 不需要客户端、代理或其他软件。 也可使用 RDP 连接到 Windows VM。 有关信息,请参阅创建到 Windows VM 的 RDP 连接。
Azure Bastion 为预配它的虚拟网络中的所有 VM 提供安全连接。 使用 Azure Bastion 可防止虚拟机向外部公开 RDP/SSH 端口,同时仍然使用 RDP/SSH 提供安全访问。 有关详细信息,请参阅什么是 Azure Bastion?。
注意
如果要创建到 Windows VM 的 SSH 连接,则必须使用标准 SKU 或更高层对 Azure Bastion 进行配置。
使用 SSH 连接到 Windows 虚拟机时,可以使用用户名/密码和 SSH 密钥进行身份验证。
SSH 私钥必须采用以 "-----BEGIN RSA PRIVATE KEY-----"
开头并以 "-----END RSA PRIVATE KEY-----"
结尾的格式。
先决条件
请确保已为 VM 所在的虚拟网络设置 Azure Bastion 主机。 有关详细信息,请参阅创建 Azure Bastion 主机。 在虚拟网络中预配和部署 Bastion 服务后,便可以使用它连接到此虚拟网络中的任何 VM。
若要通过 SSH 连接到 Windows 虚拟机,还必须确保:
- Windows 虚拟机运行 Windows Server 2019 或更高版本。
- 在 Windows 虚拟机上安装并运行 OpenSSH 服务器。 若要了解如何执行此操作,请参阅安装 OpenSSH。
- Azure Bastion 已配置为使用标准 SKU 或更高层。
必需的角色
需要使用以下角色进行连接:
- 虚拟机上的读者角色
- NIC 上的读者角色(使用虚拟机的专用 IP)
- Azure Bastion 资源上的读者角色
- 目标虚拟机的虚拟网络上的读者角色(如果 Bastion 部署位于对等互连虚拟网络中)。
端口
若要通过 SSH 连接到 Windows VM,必须在 VM 上打开以下端口:
- 入站端口:SSH (22) 或
- 入站端口:自定义值(然后,你需要在通过 Azure Bastion 连接到 VM 时指定此自定义端口)
请参阅 Azure Bastion 常见问题解答了解其他要求。
支持的配置
目前,Azure Bastion 仅支持使用 OpenSSH 通过 SSH 连接到 Windows VM。
Bastion 连接页
在 Azure 门户中,转到要连接的虚拟机。 在“概述”页上,选择“连接”,然后从下拉列表中选择“Bastion”以打开 Bastion 连接页。 还可以从左侧窗格选择“Bastion”。
在 Bastion 连接页上,单击“连接设置”箭头以展开所有可用的设置。 请注意,如果使用 Bastion 标准 SKU 或更高层,则可用设置会更多。
使用以下部分中的方法之一进行身份验证和连接。
用户名和密码
使用以下步骤通过用户名和密码进行身份验证。
若要使用用户名和密码进行身份验证,请配置以下设置:
- 协议:选择 SSH。
- 端口:输入端口号。 自定义端口连接仅适用于标准 SKU 或更高层。
- 身份验证类型:从下拉列表中选择“密码”。
- 用户名:输入用户名。
- 密码:输入密码。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
本地文件中的私钥
使用以下步骤通过本地文件中的 SSH 私钥进行身份验证。
若要使用本地文件中的私钥进行身份验证,请配置以下设置:
- 协议:选择 SSH。
- 端口:输入端口号。 自定义端口连接仅适用于标准 SKU 或更高层。
- 身份验证类型:从下拉列表中选择“本地文件中的 SSH 私钥”。
- 本地文件:选择本地文件。
- SSH 密码:如有必要,请输入 SSH 密码。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
密码 - Azure Key Vault
使用以下步骤通过 Azure Key Vault 中的密码进行身份验证。
若要使用 Azure Key Vault 中的密码进行身份验证,请配置以下设置:
协议:选择 SSH。
端口:输入端口号。 自定义端口连接仅适用于标准 SKU 或更高层。
身份验证类型:从下拉列表中选择“Azure Key Vault 中的密码”。
用户名:输入用户名。
订阅:选择订阅。
Azure Key Vault:选择 Key Vault。
Azure Key Vault 机密:选择包含 SSH 私钥值的 Key Vault 机密。
如果未设置 Azure Key Vault 资源,请参阅创建密钥保管库并将 SSH 私钥存储为新 Key Vault 机密的值。
确保对 Key Vault 中存储的机密具有“列出”和“获取”权限 。 若要为 Key Vault 资源分配访问策略和修改该资源的访问策略,请参阅分配 Key Vault 访问策略。
注意
请通过 PowerShell 或 Azure CLI 体验将 SSH 私钥作为机密存储在 Azure Key Vault 中。 通过 Azure Key Vault 门户体验存储私钥会干扰格式设置并导致登录失败。 如果确实已使用门户体验将私钥存储为机密,并且不再有权访问原始私钥文件,请参阅更新 SSH 密钥以使用新的 SSH 密钥对更新对目标 VM 的访问权限。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
私钥 - Azure Key Vault
使用以下步骤通过 Azure Key Vault 中存储的私钥进行身份验证。
若要使用 Azure Key Vault 中存储的私钥进行身份验证,请配置以下设置:
协议:选择 SSH。
端口:输入端口号。 自定义端口连接仅适用于标准 SKU 或更高层。
身份验证类型:从下拉列表中选择“Azure Key Vault 中的 SSH 私钥”。
用户名:输入用户名。
订阅:选择订阅。
Azure Key Vault:选择 Key Vault。
如果未设置 Azure Key Vault 资源,请参阅创建密钥保管库并将 SSH 私钥存储为新 Key Vault 机密的值。
确保对 Key Vault 中存储的机密具有“列出”和“获取”权限 。 若要为 Key Vault 资源分配访问策略和修改该资源的访问策略,请参阅分配 Key Vault 访问策略。
注意
请通过 PowerShell 或 Azure CLI 体验将 SSH 私钥作为机密存储在 Azure Key Vault 中。 通过 Azure Key Vault 门户体验存储私钥会干扰格式设置并导致登录失败。 如果确实已使用门户体验将私钥存储为机密,并且不再有权访问原始私钥文件,请参阅更新 SSH 密钥以使用新的 SSH 密钥对更新对目标 VM 的访问权限。
Azure Key Vault 机密:选择包含 SSH 私钥值的 Key Vault 机密。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
后续步骤
有关 Azure Bastion 的详细信息,请参阅 Bastion 常见问题解答。