Condividi tramite


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:

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:

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 che registrationState sia impostato su Registered
  • 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

Disabilitare SSH ai server abilitati per Arc

Questa funzionalità può essere disabilitata completando le azioni seguenti:

  • Rimuovere la porta SSH e la funzionalità 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