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:
- Instalación del módulo desde la Galería de PowerShell:
Install-Module -Name Az.Ssh.ArcProxy
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:
- Vuelva a habilitar la funcionalidad en los servidores habilitados para Azure Arc.
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 queregistrationState
está establecida enRegistered
- 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
- 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 .
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
- Obtenga información sobre el acceso de SSH a servidores habilitados para Azure Arc.
- Obtenga información sobre cómo solucionar problemas de conexión del agente.