Risolvere i problemi di accesso SSH ai server abilitati per Azure Arc
Questo articolo fornisce informazioni sull’eliminazione e la risoluzione dei problemi che possono verificarsi durante il tentativo di connessione ai server abilitati per Azure Arc tramite SSH. Per informazioni generali, vedere Panoramica sull'accesso SSH ai server abilitati per Arc.
Problemi lato client
Questi problemi sono dovuti a errori che si verificano nel computer dal quale l'utente si connette.
Non è possibile individuare i file binari del client
Questo problema si verifica quando non si trovano i file binari SSH sul lato client necessari per la connessione. Possibili errori:
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'.
Risoluzione:
- Specificare il percorso della cartella contenente i file eseguibili client SSH usando il parametro
--ssh-client-folder
. - Assicurarsi che la cartella si trovi nella variabile di ambiente PATH per Azure PowerShell
Versione del modulo di Azure PowerShell non corrispondente
Questo problema si verifica quando il modulo secondario di Azure PowerShell installato, ovvero Az.Ssh.ArcProxy, non è supportato dalla versione installata di Az.Ssh. Errore:
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.
Risoluzione:
- Aggiornare i moduli Az.Ssh e Az.Ssh.ArcProxy
Az.Ssh.ArcProxy non installato
Questo problema si verifica quando il modulo proxy non viene trovato nel computer client. Errore:
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).
Risoluzione:
- Installare il modulo da PowerShell Gallery:
Install-Module -Name Az.Ssh.ArcProxy
L'utente non dispone delle autorizzazioni per eseguire il proxy
Questo problema si verifica quando l'utente non dispone delle autorizzazioni per eseguire il proxy SSH usato per la connessione. Errori:
/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
Risoluzione:
- Assicurarsi che l'utente disponga delle autorizzazioni per eseguire il file proxy.
Problemi lato server
Impossibile connettersi dopo l'anteprima pubblica
Se l'utente ha partecipato all'anteprima pubblica e ha aggiornato l'agente Arc e l'interfaccia della riga di comando di Azure/PowerShell alle versioni di disponibilità generale, la connettività potrebbe non riuscire.
Risoluzione:
- Riabilitare la funzionalità nei server abilitati per Azure Arc.
Traffico SSH non consentito nel server
Questo problema si verifica quando SSHD non è in esecuzione nel server o il traffico SSH non è consentito nel server. Errore:
{"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}.
Risoluzione:
- Assicurarsi che il servizio SSHD sia in esecuzione nel server abilitato per Arc.
- Verificare che la funzionalità sia abilitata nel server abilitato per Arc sulla porta 22 (o altra porta non predefinita)
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\"}}'
Problemi con le autorizzazioni di Azure
Assegnazioni di ruolo per abilitare la connettività SSH non corrette
Questo problema si verifica quando l'utente corrente non dispone dell'assegnazione di ruolo appropriata per apportare contributi alla risorsa di destinazione. Errore:
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
Risoluzione:
- Assicurarsi di disporre del ruolo Proprietario o Collaboratore nella risorsa o contattare il proprietario/collaboratore della risorsa per configurare la connettività SSH.
Assegnazioni di ruolo per la connessione non corrette
Questo problema si verifica quando l'utente corrente non dispone dell'assegnazione di ruolo appropriata nella risorsa di destinazione, in particolare in caso di mancanza di autorizzazioni di read
. Possibili errori:
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.
Risoluzione:
- Assicurarsi di disporre del ruolo Accesso utente locale della macchina virtuale nella risorsa a cui ci si connette. Se si usa l'account di accesso Microsoft Entra, assicurarsi di disporre dei ruoli Accesso utente macchina virtuale o Accesso amministratore macchina virtuale e che l'estensione Accesso SSH di Microsoft Entra sia installata nel server abilitato per Arc.
RP HybridConnectivity non registrato
Questo problema si verifica quando il provider di risorse HybridConnectivity non è registrato per la sottoscrizione. Errore:
- Richiesta di informazioni di inoltro di Azure non riuscita: (NoRegisteredProviderFound) Codice: NoRegisteredProviderFound
Risoluzione:
- Eseguire
az provider register -n Microsoft.HybridConnectivity
- Confermare l'esito positivo eseguendo
az provider show -n Microsoft.HybridConnectivity
, verificare cheregistrationState
sia impostato suRegistered
- Riavviare l'agente ibrido nel server abilitato per Arc
Impossibile connettersi dopo l'aggiornamento dello strumento interfaccia della riga di comando e dell'agente Arc
Questo problema si verifica quando il comando aggiornato crea una nuova configurazione del servizio prima dell'aggiornamento dell'agente Arc. Ciò influirà solo sulle versioni di Azure Arc precedenti alla 1.31 quando si esegue l'aggiornamento a una versione 1.31 o successiva. Errore:
Connessione chiusa tramite la porta UNKNOWN 65535
Risoluzione:
- Eliminare la configurazione del servizio esistente e consentirne la ricreazione tramite il comando dell’interfaccia della riga di comando alla connessione successiva. Eseguire:
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
- Eliminare la configurazione del servizio esistente e consentirne la ricreazione tramite il comando dell’interfaccia della riga di comando alla connessione successiva. Eseguire:
Disabilitare SSH ai server abilitati per Arc
Questa funzionalità può essere disabilitata completando le azioni seguenti:
Rimuovere la porta e la funzionalità SSH dal server abilitato per 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\"}}'
Eliminare l'endpoint di connettività predefinito:
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
Passaggi successivi
- Informazioni sull'accesso SSH ai server abilitati per Azure Arc.
- Informazioni sulla risoluzione dei problemi di connessione dell'agente.