Acceso de SSH a servidores habilitados para Azure Arc

SSH para servidores habilitados para Arc permite conexiones basadas en SSH a servidores habilitados para Arc sin necesidad de una dirección IP pública ni puertos abiertos adicionales. Esta funcionalidad se puede usar de forma interactiva, automatizada o con herramientas basadas en SSH existentes, lo que permite que las herramientas de administración existentes tengan un mayor impacto en los servidores habilitados para Azure Arc.

Ventajas principales

El acceso de SSH a servidores habilitados para Arc proporciona las siguientes ventajas clave:

  • No se requiere ninguna dirección IP pública ni puertos SSH abiertos.
  • Acceso a máquinas Windows y Linux.
  • Capacidad de iniciar sesión como un usuario local o un usuario de Azure (solo Linux)
  • Compatibilidad con otras herramientas basadas en OpenSSH con compatibilidad con archivos de configuración.

Requisitos previos

Para habilitar esta funcionalidad, compruebe lo siguiente:

  • Asegúrese de que la versión de agente híbrido del servidor habilitado para Arc es ”1.31.xxxx” o superior. Ejecute: azcmagent show en el servidor habilitado para Arc.
  • Asegúrese de que el servidor habilitado para Arc tenga habilitado el servicio "sshd". En el caso de las máquinas Linux, openssh-server se puede instalar a través de un administrador de paquetes y debe habilitarse. SSHD debe estar habilitado en Windows.
  • Asegúrese de que tiene asignado el rol Propietario o Colaborador.

La autenticación con credenciales de Microsoft Entra tiene requisitos adicionales:

  • aadsshlogin y aadsshlogin-selinux (según corresponda) deben instalarse en el servidor habilitado para Arc. Estos paquetes se instalan con la extensión de máquina virtual Azure AD based SSH Login – Azure Arc.

  • Configure las asignaciones de roles para la máquina virtual. Para autorizar el inicio de sesión de una VM se usan dos roles de Azure:

    • Inicio de sesión de administrador de máquina virtual: los usuarios que tienen asignado este rol pueden iniciar sesión en una máquina virtual de Azure con privilegios de administrador.
    • Inicio de sesión de usuario de máquina virtual: los usuarios que tienen asignado este rol pueden iniciar sesión en una máquina virtual de Azure con los privilegios de un usuario normal.

    Un usuario de Azure que tenga asignados los roles Propietario o Colaborador para una VM no tiene automáticamente privilegios de inicio de sesión de Microsoft Entra para la VM mediante SSH. Hay una separación intencional (y auditada) entre el conjunto de personas que controlan máquinas virtuales frente al conjunto de personas que pueden acceder a las máquinas virtuales.

    Nota:

    Los roles Inicio de sesión de administrador de máquina virtual e Inicio de sesión de usuario de máquina virtual usan dataActions y se pueden asignar en el ámbito del grupo de administración, la suscripción, el grupo de recursos o el recurso. Se recomienda asignar los roles en el nivel de grupo de administración, suscripción o recurso, y no en el nivel de máquina virtual individual. Esta práctica evita el riesgo de alcanzar el límite de asignaciones de roles de Azure por suscripción.

Disponibilidad

El acceso SSH a servidores habilitados para Arc se admite actualmente en todas las regiones compatibles con servidores habilitados para Arc con las siguientes excepciones:

  • Centro-oeste de Alemania

Introducción

Registro del proveedor de recursos HybridConnectivity

Nota:

Se trata de una operación única que debe realizarse en cada suscripción.

Compruebe si se ha registrado el proveedor de recursos HybridConnectivity (RP):

az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState

Si RP no se ha registrado, ejecute lo siguiente:

az provider register -n Microsoft.HybridConnectivity

La operación puede tardar de 2 a 5 minutos en completarse. Antes de continuar, compruebe que RP se ha registrado.

Creación de un punto de conexión de conectividad predeterminado

Nota:

El paso siguiente no tendrá que ejecutarse para la mayoría de los usuarios, ya que se completará automáticamente en la primera conexión. Este paso debe completarse para cada servidor habilitado para Arc.

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=2023-03-15 --body '{"properties": {"type": "default"}}'

Nota:

Si usa la CLI de Azure de PowerShell, se debe utilizar lo siguiente.

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=2023-03-15 --body '{\"properties\":{\"type\":\"default\"}}'

Valide la creación de puntos de conexión:

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=2023-03-15

Instalación de la herramienta de línea de comandos local

Esta funcionalidad se empaqueta actualmente en una extensión de la CLI de Azure y un módulo Azure PowerShell.

az extension add --name ssh

Nota:

La versión de la extensión de la CLI de Azure debe ser mayor que 2.0.0.

Habilitación de la funcionalidad en el servidor habilitado para Arc

Para usar la característica de conexión SSH, debe actualizar la configuración del servicio en el punto de conexión de conectividad en el servidor habilitado para Arc para permitir la conexión SSH a un puerto específico. Solo puede permitir la conexión a un único puerto. Las herramientas de la CLI intentan actualizar el puerto permitido en tiempo de ejecución, pero el puerto se puede configurar manualmente con lo siguiente:

Nota:

Puede haber un retraso después de actualizar la configuración del servicio hasta que pueda conectarse.

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/serviceconfigurations/SSH?api-version=2023-03-15 --body "{\"properties\": {\"serviceName\": \"SSH\", \"port\": 22}}"

Si usa un puerto no predeterminado para la conexión SSH, reemplace el puerto 22 por el puerto que quiera en el comando anterior.

Opcional: Instalación de la extensión de inicio de sesión de Azure AD

La extensión de máquina virtual Azure AD based SSH Login – Azure Arc se puede agregar desde el menú de extensiones del servidor de Arc. La extensión de inicio de sesión de Azure AD también se puede instalar localmente a través de un administrador de paquetes con apt-get install aadsshlogin o el siguiente comando.

az connectedmachine extension create --machine-name <arc enabled server name> --resource-group <resourcegroup> --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLogin --type AADSSHLoginForLinux --location <location>

Ejemplos

Para ver ejemplos, consulte la página de documentación de Az CLI az ssh o la página de documentación de Azure PowerShell para Az.Ssh.

Pasos siguientes