Sdílet prostřednictvím


Řešení potíží s přístupem SSH k serverům s podporou Azure Arc

Tento článek obsahuje informace o řešení potíží a řešení problémů, ke kterým může dojít při pokusu o připojení k serverům s podporou Azure Arc přes SSH. Obecné informace najdete v tématu Přehled přístupu SSH k serverům s podporou Arc.

Problémy na straně klienta

Příčinou těchto problémů jsou chyby, ke kterým dochází na počítači, ze kterého se uživatel připojuje.

Nepovedlo se najít binární soubory klienta

K tomuto problému dochází v případě, že nejsou nalezeny binární soubory SSH na straně klienta potřebné pro připojení. Možné chyby:

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

Řešení:

  • Pomocí parametru --ssh-client-folder zadejte cestu ke složce, která obsahuje spustitelné soubory klienta SSH.
  • Ujistěte se, že je složka v proměnné prostředí PATH pro Azure PowerShell.

Neshoda verzí modulu Azure PowerShellu

K tomuto problému dochází, když nainstalovaná submodule Azure PowerShellu Az.Ssh.ArcProxy není podporována nainstalovanou verzí Az.Ssh. Chyba:

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

Řešení:

  • Aktualizace modulů Az.Ssh a Az.Ssh.ArcProxy

Az.Ssh.ArcProxy není nainstalovaný

K tomuto problému dochází v případě, že se na klientském počítači nenašel modul proxy. Chyba:

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

Řešení:

Uživatel nemá oprávnění ke spuštění proxy serveru.

K tomuto problému dochází v případě, že uživatel nemá oprávnění ke spuštění proxy serveru SSH, který se používá k připojení. Chyby:

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

Řešení:

  • Ujistěte se, že má uživatel oprávnění ke spuštění proxy souboru.

Problémy na straně serveru

Nejde se připojit po verzi Public Preview

Pokud se uživatel zúčastnil verze Public Preview a aktualizoval svého agenta Arc a Azure CLI nebo PowerShell na verze obecné dostupnosti, může připojení selhat.

Řešení:

  • Znovu povolte funkce na serverech s podporou Azure Arc.

Provoz SSH není na serveru povolený

K tomuto problému dochází, když na serveru není spuštěná služba SSHD nebo na serveru není povolený provoz SSH. Chyba:

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

Řešení:

  • Ujistěte se, že je služba SSHD spuštěná na serveru s podporou Arc.
  • Ujistěte se, že je funkce na serveru s podporou arc povolená na portu 22 (nebo na jiném nedefaultním portu).
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\"}}'

Problémy s oprávněními Azure

Nesprávná přiřazení rolí pro povolení připojení SSH

K tomuto problému dochází, když aktuální uživatel nemá správné přiřazení role k přispívání do cílového prostředku. Chyba:

  • 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

Řešení:

  • Ujistěte se, že u prostředku máte roli Vlastník nebo Přispěvatel, nebo se obraťte na vlastníka nebo přispěvatele prostředku a nastavte připojení SSH.

Nesprávná přiřazení rolí pro připojení

K tomuto problému dochází, když aktuální uživatel nemá správné přiřazení role pro cílový prostředek, konkrétně nedostatek read oprávnění. Možné chyby:

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

Řešení:

  • Ujistěte se, že v prostředku, ke kterému se připojujete, máte roli přihlášení místního uživatele virtuálního počítače. Pokud používáte přihlášení Microsoft Entra, ujistěte se, že máte přihlašovací role uživatele virtuálního počítače nebo přihlašovací role správce virtuálního počítače a že na serveru s podporou arc je nainstalované rozšíření Microsoft Entra SSH Login.

Neregistrovaný poskytovatel prostředků hybridního připojení

K tomuto problému dochází v případě, že poskytovatel prostředků HybridConnectivity není zaregistrovaný pro předplatné. Chyba:

  • Žádost o informace o službě Azure Relay selhala: (NoRegisteredProviderFound) Kód: NoRegisteredProviderFound

Řešení:

  • Spusťte příkaz az provider register -n Microsoft.HybridConnectivity.
  • Potvrďte úspěch spuštěním az provider show -n Microsoft.HybridConnectivitypříkazu , ověřte, že registrationState je nastavená hodnota Registered
  • Restartování hybridního agenta na serveru s podporou arc

Po aktualizaci nástroje CLI a agenta Arc se nejde připojit

K tomuto problému dochází, když aktualizovaný příkaz vytvoří novou konfiguraci služby před aktualizací agenta Arc. To bude mít vliv jenom na verze Azure Arc starší než 1.31 při aktualizaci na verzi 1.31 nebo novější. Chyba:

  • Připojení uzavřené neznámým portem 65535

    Řešení:

    • Odstraňte existující konfiguraci služby a povolte jeho opětovné vytvoření příkazem rozhraní příkazového řádku při dalším připojení. Spusťte .
      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
      

Zakázání SSH na servery s podporou Arc

Tuto funkci je možné zakázat provedením následujících akcí:

  • Odeberte port a funkce SSH ze serveru s podporou 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\"}}'
    
  • Odstraňte výchozí koncový bod připojení:

    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
    

Další kroky

  • Přečtěte si o přístupu SSH k serverům s podporou Azure Arc.
  • Přečtěte si o řešení potíží s připojením agenta.