使用 Azure Bastion 创建与 Linux VM 的 SSH 连接
本文演示如何直接通过 Azure 门户安全无缝地与 Azure 虚拟网络中的 Linux VM 建立 SSH 连接。 使用 Azure Bastion 时,VM 不需要客户端、代理或其他软件。
Azure Bastion 为预配它的虚拟网络中的所有 VM 提供安全连接。 使用 Azure Bastion 可防止虚拟机向外部公开 RDP/SSH 端口,同时仍然使用 RDP/SSH 提供安全访问。 有关详细信息,请参阅什么是 Azure Bastion?一文。
使用 SSH 连接到 Linux 虚拟机时,可以使用用户名/密码和 SSH 密钥进行身份验证。 SSH 私钥必须采用以 "-----BEGIN RSA PRIVATE KEY-----"
开头并以 "-----END RSA PRIVATE KEY-----"
结尾的格式。
先决条件
请确保已为 VM 所在的虚拟网络设置 Azure Bastion 主机。 有关详细信息,请参阅创建 Azure Bastion 主机。 在虚拟网络中预配和部署 Bastion 服务后,便可以使用它连接到此虚拟网络中的任何 VM。
可用的连接设置和功能取决于所使用的 Bastion SKU。 确保 Bastion 部署使用所需的 SKU。
- 若要查看每个 SKU 层的可用功能和设置,请参阅“Bastion 概述”一文的 SKU 和功能部分。
- 若要检查 Bastion 部署的 SKU 层并在必要时升级,请参阅升级 Bastion SKU。
必需的角色
需要使用以下角色进行连接:
- 虚拟机上的读者角色。
- NIC 上的读者角色(使用虚拟机的专用 IP)。
- Azure Bastion 资源上的读者角色。
- 目标虚拟机的虚拟网络上的读者角色(如果 Bastion 部署位于对等互连虚拟网络中)。
端口
若要通过 SSH 连接到 Linux VM,必须在 VM 上打开以下端口:
- 入站端口:SSH (22) 或
- 入站端口:自定义值(在通过 Azure Bastion 连接到 VM 时,需要指定此自定义端口)。 此设置不适用于基本 SKU。
Bastion 连接页
在 Azure 门户中,转到要连接到的虚拟机。 在虚拟机“概述”页顶部,选择“连接”,然后从下拉列表中选择“通过 Bastion 连接”。 此操作会打开“Bastion”页面。 可以直接在左侧窗格中转到“Bastion”页面。
在“Bastion”页面上,可以配置的设置取决于为堡垒主机配置使用的 Bastion SKU 层。
如果使用高于基本 SKU 的 SKU,则可以看到“连接设置”值(端口和协议)可见,并且可以进行配置。
如果使用基本 SKU,则无法配置连接设置值。 连接会改为使用以下默认设置:SSH 和端口 22。
若要查看并选择可用的“身份验证类型”,请使用下拉列表。
按本文中的以下部分配置身份验证设置并连接到 VM。
密码验证
使用以下步骤通过用户名和密码进行身份验证。
若要使用用户名和密码进行身份验证,请配置以下设置。
连接设置:仅适用于高于基本 SKU 的 SKU。
- 协议:选择 SSH。
- 端口:指定端口号。
身份验证类型:从下拉列表中选择“密码”。
用户名:输入用户名。
密码:输入密码。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
密码身份验证 - Azure 密钥保管库
使用以下步骤通过 Azure Key Vault 中的密码进行身份验证。
若要使用 Azure 密钥保管库中的密码进行身份验证,请配置以下设置。
连接设置:仅适用于高于基本 SKU 的 SKU。
- 协议:选择 SSH。
- 端口:指定端口号。
身份验证类型:从下拉列表中选择“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 密钥保管库中。 通过 Azure 密钥保管库门户体验存储私钥会干扰格式设置并导致登录失败。 如果确实已使用门户体验将私钥存储为机密,并且不再有权访问原始私钥文件,请参阅更新 SSH 密钥以使用新的 SSH 密钥对更新对目标 VM 的访问权限。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
SSH 私钥身份验证 - 本地文件
使用以下步骤通过本地文件中的 SSH 私钥进行身份验证。
若要使用本地文件中的私钥进行身份验证,请配置以下设置。
连接设置:仅适用于高于基本 SKU 的 SKU。
- 协议:选择 SSH。
- 端口:指定端口号。
身份验证类型:从下拉列表中选择“本地文件中的 SSH 私钥”。
用户名:输入用户名。
本地文件:选择本地文件。
SSH 密码:如有必要,请输入 SSH 密码。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
SSH 私钥身份验证 - Azure 密钥保管库
使用以下步骤通过 Azure Key Vault 中存储的私钥进行身份验证。
若要使用 Azure 密钥保管库中存储的私钥进行身份验证,请配置以下设置。 对于基本 SKU,无法配置连接设置,而是使用默认连接设置:SSH 和端口 22。
连接设置:仅适用于高于基本 SKU 的 SKU。
- 协议:选择 SSH。
- 端口:指定端口号。
身份验证类型:从下拉列表中选择“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 密钥保管库中。 通过 Azure 密钥保管库门户体验存储私钥会干扰格式设置并导致登录失败。 如果确实已使用门户体验将私钥存储为机密,并且不再有权访问原始私钥文件,请参阅更新 SSH 密钥以使用新的 SSH 密钥对更新对目标 VM 的访问权限。
Azure Key Vault 机密:选择包含 SSH 私钥值的 Key Vault 机密。
若要在新的浏览器选项卡中使用 VM,请选择“在新建浏览器选项卡中打开”。
单击“连接”以连接到 VM。
后续步骤
有关 Azure Bastion 的详细信息,请参阅 Bastion 常见问题解答。