你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过 SSH 访问已启用 Azure Arc 的服务器

已启用 Arc 的服务器的 SSH 支持与已启用 Arc 的服务器的基于 SSH 的连接,而无需公共 IP 地址或其他开放端口。 此功能可采用交互方式使用、自动化或与现有的基于 SSH 的工具一起使用,从而让现有的管理工具可以对已启用 Azure Arc 的服务器产生更大的影响。

重要

已启用 Arc 的服务器的 SSH 目前为预览版。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

主要优点

对已启用 Arc 的服务器的 SSH 访问提供了以下主要优势:

  • 无需公共 IP 地址或开放 SSH 端口
  • 访问 Windows 和 Linux 计算机
  • 能够以本地用户或 Azure 用户(仅限 Linux)身份进行登录
  • 支持其他具有配置文件支持的基于 OpenSSH 的工具

先决条件

若要利用此功能,请确保满足以下条件:

  • 确保已启用 Arc 的服务器具有“1.13.21320.014”或更高版本的混合代理版。
  • 运行:已启用 Arc 的服务器上的 azcmagent show
  • 确保已启用 Arc 的服务器已启用“sshd”服务
  • 确保已分配虚拟机本地用户登录角色(角色 ID:602da2baa5c241dab01d5360126ab525)

可用性

以下区域目前支持对已启用 Arc 的服务器的 SSH 访问:

  • eastus2euap、eastus、eastus2、westus2、southeastasia、westeurope、northeurope、westcentralus、southcentralus、uksouth、australiaeast、francecentral、japaneast、eastasia、koreacentral、westus3、westus、centralus、northcentralus。

支持的操作系统

  • Windows:Windows 7+ 和 Windows Server 2012+
  • Linux:
    • CentOS:CentOS 7、CentOS 8
    • RedHat Enterprise Linux (RHEL):RHEL 7.4 到 RHEL 7.10、RHEL 8.3+
    • SUSE Linux Enterprise Server (SLES):SLES 12、SLES 15.1+
    • Ubuntu Server:Ubuntu Server 16.04 到 Ubuntu Server 20.04

入门

安装本地命令行工具

此功能当前打包在 Azure CLI 扩展和 Azure PowerShell 模块中。

az extension add --name ssh

注意

Azure CLI 扩展版本必须高于 1.1.0。

在已启用 Arc 的服务器上启用功能

若要使用 SSH 连接功能,必须在混合代理上启用连接。

注意

必须在提升的终端会话中完成以下操作。

查看当前的传入连接:

azcmagent config list

如果已有端口,则需要将其包含在以下命令中。

若要添加对 SSH 连接的访问权限,请运行以下命令:

azcmagent config set incomingconnections.ports 22<,other open ports,...>

如果使用非默认端口进行 SSH 连接,请将端口 22 替换为上一命令中所需的端口。

注意

大多数用户不需要运行以下步骤。

注册 HybridConnectivity 资源提供程序

注意

这是需要对每个订阅执行的一次性操作。

检查是否已注册 HybridConnectivity 资源提供程序 (RP) :

az provider show -n Microsoft.HybridConnectivity

如果尚未注册 RP,请运行以下命令:

az provider register -n Microsoft.HybridConnectivity

此操作可能需要 2-5 分钟才能完成。 在继续操作之前,请检查 RP 是否已注册。

创建默认连接终结点

注意

必须为每个已启用 Arc 的服务器完成以下操作。

在 PowerShell 中创建默认终结点:

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2021-10-06-preview --body '{\"properties\": {\"type\": \"default\"}}'

在 Bash 中创建默认终结点:

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2021-10-06-preview --body '{"properties": {"type": "default"}}'

验证终结点创建:

az rest --method get --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2021-10-06-preview

示例

要查看示例,请查看 az ssh 的 AZ CLI 文档页面或 Az.Ssh 的 Azure PowerShell 文档页面。