Compartir a través de


Solución de problemas de acceso de SSH a servidores habilitados para Azure Arc

En este artículo se proporciona información sobre cómo solucionar problemas que pueden producirse al intentar conectarse a los servidores habilitados para Azure Arc mediante el protocolo SSH. Para obtener información general, consulte Información general sobre el acceso SSH a servidores habilitados para Arc.

Problemas del lado cliente

Este tipo de problemas se debe a errores que ocurren en el equipo desde el que se conecta el usuario.

No se pueden encontrar los archivos binarios de cliente

Este tipo de problema ocurre cuando no se encuentran los archivos binarios SSH del lado cliente que requiere la conexión. Errores posibles:

  • Failed to create ssh key file with error: \<ERROR\>.
  • Failed to run ssh command with error: \<ERROR\>.
  • Failed to get certificate info with error: \<ERROR\>.
  • Failed to create ssh key file with error: [WinError 2] The system cannot find the file specified.
  • Failed to create ssh key file with error: [Errno 2] No such file or directory: 'ssh-keygen'.

Resolución:

  • Proporcione la ruta de acceso a la carpeta que contiene los ejecutables del cliente SSH mediante el parámetro --ssh-client-folder.
  • Asegúrese de que la carpeta está en la variable de entorno PATH para Azure PowerShell

Error de coincidencia de la versión del módulo de Azure PowerShell

Este problema se produce cuando el submódulo de Azure PowerShell instalado, Az.Ssh.ArcProxy, no es compatible con la versión instalada de Az.Ssh. Error:

  • This version of Az.Ssh only supports version 1.x.x of the Az.Ssh.ArcProxy PowerShell Module. The Az.Ssh.ArcProxy module {ModulePath} version is {ModuleVersion}, and it is not supported by this version of the Az.Ssh module. Check that this version of Az.Ssh is the latest available.

Resolución:

  • Actualización de los módulos Az.Ssh y Az.Ssh.ArcProxy

Az.Ssh.ArcProxy no instalado

Este problema se produce cuando el módulo proxy no se encuentra en el equipo cliente. Error:

  • Failed to find the PowerShell module Az.Ssh.ArcProxy installed in this machine. You must have the Az.Ssh.Proxy PowerShell module installed in the client machine in order to connect to Azure Arc resources. You can find the module in the PowerShell Gallery (see: https://aka.ms/PowerShellGallery-Az.Ssh.ArcProxy).

Resolución:

El usuario no tiene permisos para ejecutar el proxy

Este problema se produce cuando el usuario no tiene permisos para ejecutar el proxy SSH que se usa para conectarse. Errores:

  • /bin/bash: line 1: exec: /usr/local/share/powershell/Modules/Az.Ssh.ArcProxy/1.0.0/sshProxy_linux_amd64_1.3.022941: cannot execute: Permission denied
  • CreateProcessW failed error:5 posix_spawnp: Input/output error

Resolución:

  • Asegúrese de que el usuario tiene permisos para ejecutar el archivo proxy.

Problemas del lado servidor

No se puede conectar después de la versión preliminar pública

Si el usuario había participado en la versión preliminar pública y ha actualizado su agente de Arc y la CLI de Azure o PowerShell a las versiones de disponibilidad general, es posible que se produzca un error en la conectividad.

Resolución:

No se permite el tráfico SSH en el servidor

Este tipo de problema ocurre si el servicio SSHD no está en ejecución en el servidor o este no permite el tráfico SSH. Error:

  • {"level":"fatal","msg":"sshproxy: error copying information from the connection: read tcp 192.168.1.180:60887-\u003e40.122.115.96:443: wsarecv: An existing connection was forcibly closed by the remote host.","time":"2022-02-24T13:50:40-05:00"}
  • {"level":"fatal","msg":"sshproxy: error connecting to the address: 503 connection to localhost:22 failed: dial tcp [::1]:22: connectex: No connection could be made because the target machine actively refused it.. websocket: bad handshake","proxyVersion":"1.3.022941"}
  • SSH connection is not enabled in the target port {Port}.

Resolución:

  • Asegúrese de que el servicio SSHD esté en ejecución en el servidor habilitado para Arc.
  • Asegúrese de que la funcionalidad está habilitada en el servidor habilitado para Arc en el puerto 22 (u otro puerto no predeterminado)
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\"}}'

Problemas de permisos de Azure

Asignaciones de roles incorrectas para habilitar la conectividad SSH

Este problema se produce cuando el usuario actual no tiene la asignación de roles adecuada para realizar contribuciones al recurso de destino. Error:

  • Client is not authorized to create a Default connectivity endpoint for {Name} in the Resource Group {ResourceGroupName}. This is a one-time operation that must be performed by an account with Owner or Contributor role to allow connections to target resource

Resolución:

  • Asegúrese de que tiene el rol Propietario o Colaborador en el recurso o póngase en contacto con el propietario o colaborador del recurso para configurar la conectividad SSH.

Asignaciones de roles incorrectas para conectarse

Este tipo de problema ocurre cuando el usuario actual no posee una asignación de roles adecuada en el recurso de destino, más concretamente, si no posee permisos read. Errores posibles:

  • Unable to determine the target machine type as Azure VM or Arc Server
  • Unable to determine that the target machine is an Arc Server
  • Unable to determine that the target machine is an Azure VM
  • Permission denied (publickey).
  • Request for Azure Relay Information Failed: (AuthorizationFailed) The client '\<user name\>' with object id '\<ID\>' does not have authorization to perform action 'Microsoft.HybridConnectivity/endpoints/listCredentials/action' over scope '/subscriptions/\<Subscription ID\>/resourceGroups/\<Resource Group\>/providers/Microsoft.HybridCompute/machines/\<Machine Name\>/providers/Microsoft.HybridConnectivity/endpoints/default' or the scope is invalid. If access was recently granted, please refresh your credentials.

Resolución:

  • Asegúrese de que tiene el rol Inicio de sesión de usuario local de la máquina virtual en el recurso al que se va a conectar. Si usa el inicio de sesión de Microsoft Entra, asegúrese de que tiene el inicio de sesión de usuario de la máquina virtual o los roles de inicio de sesión de administrador de máquinas virtuales y de que la extensión Inicio de sesión SSH de Microsoft Entra está instalada en el servidor habilitado para Arc.

El proveedor de recursos HybridConnectivity no está registrado

Este problema se produce cuando el proveedor de recursos HybridConnectivity no está registrado para la suscripción. Error:

  • "Error en la solicitud de información de Azure Relay: (NoRegisteredProviderFound) Code: NoRegisteredProviderFound"

Resolución:

  • Ejecute az provider register -n Microsoft.HybridConnectivity:
  • Confirme que la operación se ha realizado correctamente mediante la ejecución de az provider show -n Microsoft.HybridConnectivity; compruebe que registrationState está establecida en Registered
  • Reinicie el agente híbrido del servidor habilitado para Arc

No se puede conectar después de actualizar la herramienta de la CLI y el agente de Arc

Este problema se produce cuando el comando actualizado crea una nueva configuración de servicio antes de que se actualice el agente de Arc. Esto solo afectará a las versiones de Azure Arc anteriores a la 1.31 al actualizar a una versión 1.31 o posterior. Error:

  • Conexión cerrada por el puerto UNKNOWN 65535

    Resolución:

    • Elimine la configuración de servicio existente y permita que se vuelva a crear mediante el comando de la CLI en la siguiente conexión. Ejecute .
      az rest --method delete --uri https://management.azure.com/subscriptions/<SUB_ID>/resourceGroups/<RG_NAME>/providers/Microsoft.HybridCompute/machines/<VM_NAME>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15
      

Deshabilitación del acceso SSH a servidores habilitados para Arc

Para deshabilitar esta funcionalidad, complete los siguientes pasos:

  • Quite el puerto SSH y la funcionalidad del servidor habilitado para Arc:

    az rest --method delete --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\"}}'
    
  • Elimine el punto de conexión de conectividad predeterminado mediante el siguiente comando:

    az rest --method delete --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
    

Pasos siguientes