Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Protokół SSH dla serwerów z obsługą usługi Arc umożliwia nawiązywanie połączeń opartych na protokole SSH z serwerami z obsługą usługi Arc bez konieczności używania publicznego adresu IP lub dodatkowych otwartych portów. Ten artykuł zawiera informacje ułatwiające rozwiązywanie problemów, które mogą wystąpić podczas próby nawiązania połączenia z serwerami z obsługą usługi Azure Arc za pośrednictwem protokołu SSH.
Problemy po stronie klienta
Skorzystaj z informacji w tej sekcji, aby rozwiązać problemy spowodowane błędami występującymi na maszynie, z której nawiązujesz połączenie.
Nie można zlokalizować plików binarnych klienta
Ten problem występuje, gdy nie można odnaleźć plików binarnych SSH po stronie klienta wymaganych do nawiązania połączenia. Komunikaty o błędach związane z tym problemem obejmują:
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'.
Aby rozwiązać ten problem:
- Podaj ścieżkę do folderu zawierającego pliki wykonywalne klienta SSH przy użyciu parametru
--ssh-client-folder. - Upewnij się, że folder znajduje się w zmiennej środowiskowej PATH dla programu Azure PowerShell.
Niezgodność wersji modułu programu Azure PowerShell
Jeśli zainstalowana wersja narzędzia Az.Ssh nie obsługuje zainstalowanego modułu programu Azure PowerShell Az.Ssh.ArcProxy, zostanie wyświetlony następujący błąd:
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.
Aby rozwiązać ten problem, zaktualizuj moduły Az.Ssh i Az.Ssh.ArcProxy do najnowszych wersji, uruchamiając następujące polecenia:
Update-Module -Name Az.Ssh
Update-Module -Name Az.Ssh.ArcProxy
Nie zainstalowano modułu Az.Ssh.ArcProxy
Jeśli moduł Az.Ssh.ArcProxy nie jest zainstalowany na maszynie klienckiej, zostanie wyświetlony następujący błąd:
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).
Aby naprawić ten błąd, zainstaluj moduł z galerii programu PowerShell: Install-Module -Name Az.Ssh.ArcProxy
Niewystarczające uprawnienia do wykonywania serwera proxy
Jeśli Twoje konto nie ma uprawnień do wykonywania serwera proxy SSH używanego do nawiązywania połączenia, mogą zostać wyświetlone następujące błędy:
/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 deniedCreateProcessW failed error:5 posix_spawnp: Input/output error
Ten problem można rozwiązać, upewniając się, że konto użytkownika ma uprawnienia do wykonywania serwera proxy SSH na maszynie zarządzania.
Problemy po stronie serwera
Skorzystaj z informacji w tej sekcji, aby rozwiązać problemy spowodowane błędami na serwerze z obsługą usługi Arc, z którym próbujesz nawiązać połączenie.
Ruch SSH nie jest dozwolony na serwerze
Ten problem występuje, gdy usługa SSHD nie jest uruchomiona na serwerze lub ruch SSH nie jest dozwolony na serwerze. W takim przypadku mogą wystąpić następujące błędy:
{"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}.
Aby rozwiązać ten problem:
- Upewnij się, że usługa SSHD jest uruchomiona na serwerze z obsługą usługi Arc.
- Upewnij się, że funkcja jest włączona na serwerze z obsługą usługi Arc na porcie 22 (lub innym porcie bez definicji), uruchamiając następujące polecenie:
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}}'
Problemy z uprawnieniami platformy Azure
Skorzystaj z tych informacji, aby rozwiązać problemy spowodowane niewystarczającymi uprawnieniami.
Nieprawidłowe przypisania ról umożliwiające łączność SSH
Jeśli nie masz odpowiedniego przypisania roli, aby wnieść wkład w zasób docelowy, zostanie wyświetlony następujący błąd:
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
Aby rozwiązać ten błąd, upewnij się, że masz rolę Właściciel lub Współautor na serwerze z obsługą usługi Arc lub poproś kogoś z jedną z tych ról o skonfigurowanie łączności SSH.
Nieprawidłowe przypisania ról do nawiązania połączenia
Ten problem występuje, jeśli nie masz odpowiedniego przypisania roli w zasobie docelowym, a szczególnie, jeśli brakuje Ci uprawnień read. Mogą wystąpić następujące błędy:
Unable to determine the target machine type as Azure VM or Arc ServerUnable to determine that the target machine is an Arc ServerUnable to determine that the target machine is an Azure VMPermission 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.
Aby rozwiązać ten problem, upewnij się, że masz rolę Logowania lokalnego użytkownika maszyny wirtualnej na serwerze z obsługą Arc, z którym nawiązujesz połączenie. Jeśli korzystasz z logowania Microsoft Entra, upewnij się, że masz role Użytkownik logujący się do maszyny wirtualnej lub Administrator logujący się do maszyny wirtualnej, oraz że rozszerzenie Microsoft Entra SSH Login jest zainstalowane na serwerze Arc-Enabled.
Nie zarejestrowano dostawcy połączenia hybrydowego
Jeśli dostawca zasobów HybridConnectivity nie jest zarejestrowany dla subskrypcji, może zostać wyświetlony następujący błąd:
Request for Azure Relay Information Failed: (NoRegisteredProviderFound) Code: NoRegisteredProviderFound
Aby rozwiązać ten problem, zarejestruj dostawcę zasobów HybridConnectivity dla subskrypcji:
- Uruchom program
az provider register -n Microsoft.HybridConnectivity. - Potwierdź powodzenie, uruchamiając polecenie
az provider show -n Microsoft.HybridConnectivity, i sprawdź, czyregistrationStatema wartośćRegistered. - Uruchom ponownie agenta hybrydowego na serwerze z obsługą usługi Arc.