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:
- Installieren des Moduls aus dem PowerShell-Katalog:
Install-Module -Name Az.Ssh.ArcProxy
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:
- Aktivieren Sie die Funktionalität auf den Azure Arc-fähigen Servernerneut.
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, dassregistrationState
aufRegistered
gesetzt 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
- 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.
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
- Erfahren Sie über den SSH-Zugriff auf Azure Arc-fähige Server
- Erfahren Sie mehr über das Beheben derAgentverbindungsproblemen.