Dela via


Felsöka SSH-åtkomst till Azure Arc-aktiverade servrar

SSH för Arc-aktiverade servrar möjliggör SSH-baserade anslutningar till Arc-aktiverade servrar utan att kräva en offentlig IP-adress eller ytterligare öppna portar. Den här artikeln innehåller information som hjälper dig att felsöka problem som kan uppstå vid försök att ansluta till Azure Arc-aktiverade servrar via SSH.

Problem på klientsidan

Använd informationen i det här avsnittet för att lösa problem som orsakas av fel som uppstår på datorn som du ansluter från.

Det går inte att hitta klientbinärfiler

Det här problemet uppstår när de SSH-binärfiler på klientsidan som krävs för att ansluta inte hittas. Felmeddelanden som rör det här problemet är:

  • 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'.

Så här löser du problemet:

Felmatchning av Azure PowerShell-modulversion

Om den installerade versionen av Az.Ssh inte stöder den installerade Azure PowerShell-modulen Az.Ssh.ArcProxy visas följande fel:

  • 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.

Lös problemet genom att uppdatera modulerna Az.Ssh och Az.Ssh.ArcProxy till de senaste versionerna genom att köra följande kommandon:

Update-Module -Name Az.Ssh
Update-Module -Name Az.Ssh.ArcProxy

Az.Ssh.ArcProxy inte installerat

Om modulen Az.Ssh.ArcProxy inte är installerad på klientdatorn visas följande fel:

  • 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).

Åtgärda det här felet genom att installera modulen från PowerShell-galleriet: Install-Module -Name Az.Ssh.ArcProxy

Otillräcklig behörighet för att köra proxy

Om ditt konto inte har behörighet att köra SSH-proxyn som används för att ansluta kan följande fel visas:

  • /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

Du kan lösa det här problemet genom att se till att användarkontot har behörighet att köra SSH-proxyn på hanteringsdatorn.

Problem på serversidan

Använd informationen i det här avsnittet för att lösa problem som orsakas av fel på den Arc-aktiverade servern som du försöker ansluta till.

SSH-trafik tillåts inte på servern

Det här problemet uppstår när SSHD inte körs på servern eller om SSH-trafik inte tillåts på servern. I det här fallet kan du se följande fel:

  • {"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}.

Så här löser du problemet:

  • Kontrollera att SSHD-tjänsten körs på den Arc-aktiverade servern.
  • Kontrollera att funktionen är aktiverad på din Arc-aktiverade server på port 22 (eller annan nondefault-port) genom att köra följande kommando:
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}}'

Problem med Azure-behörigheter

Använd den här informationen för att lösa problem som orsakas av otillräcklig behörighet.

Felaktiga rolltilldelningar för att aktivera SSH-anslutning

Om du inte har rätt rolltilldelning för att göra bidrag till målresursen visas följande fel:

  • 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

Lös det här felet genom att se till att du har rollen Ägare eller Deltagare på den Arc-aktiverade servern eller be någon med någon av dessa roller att konfigurera SSH-anslutning.

Felaktiga rolltilldelningar att ansluta

Det här problemet uppstår om du inte har rätt rolltilldelning på målresursen, särskilt om det inte finns några read behörigheter. Du kan se följande fel:

  • 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.

Åtgärda problemet genom att se till att du har rollen Lokal inloggning för virtuell dator på den Arc-aktiverade server som du ansluter till. Om du använder Microsoft Entra-inloggning kontrollerar du att du har inloggningsrollerna för virtuell datoranvändare eller inloggningsroller för virtuell datoradministratör och att Microsoft Entra SSH-inloggningstillägget är installerat på Arc-Enabled-servern.

HybridConnectivity RP har inte registrerats

Om HybridConnectivity-resursprovidern inte är registrerad för prenumerationen kan följande fel visas:

  • Request for Azure Relay Information Failed: (NoRegisteredProviderFound) Code: NoRegisteredProviderFound

Lös problemet genom att registrera hybridanslutningsresursprovidern för prenumerationen:

  • Kör az provider register -n Microsoft.HybridConnectivity.
  • Bekräfta att det lyckades genom att köra az provider show -n Microsoft.HybridConnectivityoch kontrollera att registrationState är inställt på Registered.
  • Starta om hybridagenten på den Arc-aktiverade servern.

Nästa steg