Freigeben über


Problembehandlung für SSH-Zugriff auf Server mit Azure Arc-Unterstützung

Dieser Artikel enthält Informationen zur Behandlung und Behebung von Problemen, die bei dem Versuch auftreten können, per SSH auf Server mit Azure Arc-Unterstützung zuzugreifen. Allgemeine Informationen finden Sie unter SSH-Zugriff auf Server mit Azure Arc-Unterstützung.

Clientseitige Probleme

Diese Probleme sind auf Fehler zurückzuführen, die auf dem Computer auftreten, von dem der Benutzer eine Verbindung herstellt.

Clientbinärdateien können nicht gefunden werden.

Dieses Problem tritt auf, wenn die zur Verbindungsherstellung benötigten clientseitigen SSH-Binärdateien nicht gefunden werden. Mögliche Fehler:

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

Lösung:

  • Geben Sie mithilfe des Parameters --ssh-client-folder den Pfad zu dem Ordner an, der die ausführbaren Dateien des SSH-Clients enthält.
  • Stellen Sie sicher, dass sich der Ordner in der PATH-Umgebungsvariable für Azure PowerShell befindet.

Azure PowerShell-Modul, falsche Version

Dieses Problem tritt auf, wenn das installierte Azure PowerShell-Untermodul Az.Ssh.ArcProxy von der installierten Version von Az.Ssh nicht unterstützt wird. Fehler:

  • 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ösung:

  • Aktualisieren der Az.Ssh- und Az.Ssh.ArcProxy-Module

Az.Ssh.ArcProxy nicht installiert

Dieses Problem tritt auf, wenn das Proxymodul auf dem Clientcomputer nicht gefunden wird. Fehler:

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

Lösung:

Der Benutzer verfügt nicht über Berechtigungen zum Ausführen von Proxys

Dieses Problem tritt auf, wenn der Benutzer zum Ausführen des SSH-Proxys nicht berechtigt ist, der für die Verbindung verwendet wird. Fehler:

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

Lösung:

  • Stellen Sie sicher, dass der Benutzer zum Ausführen der Proxydatei berechtigt ist.

Serverseitige Probleme

Nach der öffentlichen Vorschau kann keine Verbindung hergestellt werden.

Wenn der Benutzer an der öffentlichen Vorschau teilgenommen und seinen Arc-Agent und die Azure CLI/PowerShell auf die allgemeinen Verfügbarkeitsversionen aktualisiert hat, kann die Konnektivität evtl. fehlschlagen.

Lösung:

SSH-Datenverkehr ist auf dem Server nicht zulässig.

Dieses Problem tritt auf, wenn SSHD nicht auf dem Server ausgeführt wird oder SSH-Datenverkehr auf dem Server nicht zulässig ist. Fehler:

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

Lösung:

  • Stellen Sie sicher, dass der SSHD-Dienst auf dem Arc-fähigen Server ausgeführt wird.
  • Stellen Sie sicher, dass die Funktionalität auf Ihrem Arc-fähigen Server auf Port 22 (oder einem anderen nicht standardmäßigen Port) aktiviert ist.
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\"}}'

Azure-Berechtigungsprobleme

Falsche Rollenzuweisungen zum Aktivieren der SSH-Konnektivität

Dieses Problem tritt auf, wenn der aktuelle Benutzer nicht über die richtige Rollenzuweisung verfügt, um Beiträge zur Zielressource zu machen. Fehler:

  • 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ösung:

  • Stellen Sie sicher, dass Sie über die Rolle "Besitzer" oder "Mitwirkender" für die Ressource verfügen, oder wenden Sie sich an den Besitzer/Mitwirkenden der Ressource, um die SSH-Konnektivität einzurichten.

Falsche Rollenzuweisungen zum Herstellen einer Verbindung

Dieses Problem tritt auf, wenn der aktuelle Benutzer nicht über die richtige Rollenzuweisung für die Zielressource verfügt (insbesondere bei fehlender Berechtigung read). Mögliche Fehler:

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

Lösung:

  • Stellen Sie sicher, dass Sie über die Anmelderolle "Virtueller Computer Lokaler Benutzer" für die Ressource verfügen, mit der Sie eine Verbindung herstellen. Stellen Sie bei Verwendung der Microsoft Entra-Anmeldung sicher, dass Sie die Rolle „Virtueller Computer User Login“ oder „Virtueller Computer Administrator“ haben und dass die Microsoft Entra SSH-Anmeldeerweiterung auf dem Arc-Enabled-Server installiert ist.

HybridConnectivity-RP wurde nicht registriert.

Dieses Problem tritt auf, wenn der HybridConnectivity-Ressourcenanbieter nicht für das Abonnement registriert ist. Fehler:

  • Request for Azure Relay Information Failed: (NoRegisteredProviderFound) Code: NoRegisteredProviderFound (Fehler bei der Anforderung von Azure Relay-Informationen: (NoRegisteredProviderFound) Code: NoRegisteredProviderFound)

Lösung:

  • Ausführen von az provider register -n Microsoft.HybridConnectivity
  • Bestätigen Sie den Erfolg durch Ausführung von az provider show -n Microsoft.HybridConnectivity und stellen Sie sicher, dass registrationState auf Registeredgesetzt ist.
  • Starten Sie den Hybrid-Agent auf dem Arc-fähigen Server neu.

Nach dem Aktualisieren des CLI-Tools und Arc-Agents kann keine Verbindung hergestellt werden

Dieses Problem tritt auf, wenn der aktualisierte Befehl eine neue Dienstkonfiguration erstellt, bevor der Arc-Agent aktualisiert wird. Dies wirkt sich nur auf Azure Arc-Versionen aus, die älter als 1.31 sind, wenn eine Aktualisierung auf Version 1.31 oder höher durchgeführt wird. Fehler:

  • Verbindung geschlossen von UNBEKANNTEM Port 65535

    Lösung:

    • Löschen Sie die vorhandene Dienstkonfiguration, und lassen Sie ihre Neuerstellung durch den CLI-Befehl bei der nächsten Verbindung zu. Führen Sie aus.
      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
      

Deaktivieren von SSH auf Arc-fähigen Servern

Diese Funktionalität kann durch Ausführen der folgenden Aktionen deaktiviert werden:

  • Entfernen Sie den SSH-Port und die Funktionalität vom Arc-fähigen Server:

    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\"}}'
    
  • Löschen Sie den standardmäßigen Konnektivitätsendpunkt:

    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
    

Nächste Schritte