Устранение неполадок с подключением по протоколу SSH к серверам с поддержкой Arc
В этой статье содержатся сведения об устранении неполадок и устранении проблем, которые могут возникнуть при попытке подключения к серверам с поддержкой Azure Arc через SSH. Общие сведения см. в обзоре доступа SSH к серверам с поддержкой Arc.
Проблемы на стороне клиента
Эти проблемы возникают из-за ошибок, возникающих на компьютере, из-за которых пользователь подключается.
Не удается найти двоичные файлы клиента
Эта проблема возникает, когда двоичные файлы SSH на стороне клиента, необходимые для подключения, не найдены. Возможные ошибки.
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'.
Решение.
- Укажите путь к папке, содержащей исполняемые файлы клиента SSH, используя параметр
--ssh-client-folder
. - Убедитесь, что папка находится в переменной среды PATH для Azure PowerShell
Несоответствие версии модуля Azure PowerShell
Эта проблема возникает, когда установленный подмодул Azure PowerShell Az.Ssh.ArcProxy не поддерживается установленной версией Az.Ssh. Ошибка:
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.
Решение.
- Обновление модулей Az.Ssh и Az.Ssh.ArcProxy
Az.Ssh.ArcProxy не установлен
Эта проблема возникает, когда прокси-модуль не найден на клиентском компьютере. Ошибка:
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).
Решение.
- Установите модуль из коллекция PowerShell:
Install-Module -Name Az.Ssh.ArcProxy
У пользователя нет разрешений на выполнение прокси-сервера
Эта проблема возникает, когда у пользователя нет разрешений на выполнение прокси-сервера SSH, используемого для подключения. Ошибки.
/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
Решение.
- Убедитесь, что у пользователя есть разрешения на выполнение прокси-файла.
Проблемы на стороне сервера
Не удается подключиться после общедоступной предварительной версии
Если пользователь участвовал в общедоступной предварительной версии и обновил свой агент Arc и Azure CLI/PowerShell до общих выпусков доступности, подключение может завершиться ошибкой.
Решение.
- Повторно включите функции на серверах с поддержкой Azure Arc.
Трафик SSH не разрешен на сервере
Эта проблема возникает, когда служба SSHD не запущена на сервере или трафик SSH не разрешен на сервере. Ошибка:
{"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}.
Решение.
- Убедитесь, что служба SSHD запущена на сервере с поддержкой Arc.
- Убедитесь, что функции включены на сервере с поддержкой Arc через порт 22 (или другой порт, отличный от языка)
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
Неправильные назначения ролей для включения подключения SSH
Эта проблема возникает, когда текущий пользователь не имеет соответствующего назначения ролей, чтобы внести вклад в целевой ресурс. Ошибка:
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
Решение.
- Убедитесь, что у вас есть роль владельца или участника в ресурсе или обратитесь к владельцу или участнику ресурса, чтобы настроить подключение SSH.
Неправильные назначения ролей для подключения
Эта проблема возникает, когда текущий пользователь не имеет соответствующего назначения ролей в целевом read
ресурсе, в частности отсутствие разрешений. Возможные ошибки.
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.
Решение.
- Убедитесь, что у вас есть роль входа локального пользователя виртуальной машины в ресурсе, к которому вы подключаетесь. При использовании имени входа Microsoft Entra убедитесь, что у вас есть роли входа пользователя виртуальной машины или роли входа администратора виртуальной машины, а также расширение входа Microsoft Entra SSH установлено на сервере с поддержкой Arc.
Гибридное подключение RP не зарегистрировано
Эта проблема возникает, когда поставщик ресурсов HybridConnectivity не зарегистрирован для подписки. Ошибка:
- Request for Azure Relay Information Failed: (NoRegisteredProviderFound) Code: NoRegisteredProviderFound
Решение.
- Выполнить
az provider register -n Microsoft.HybridConnectivity
- Убедитесь, что успешно выполнено
az provider show -n Microsoft.HybridConnectivity
, убедитесь, чтоregistrationState
задано значениеRegistered
- Перезапустите гибридный агент на сервере с поддержкой Arc
Не удается подключиться после обновления средства командной строки и агента Arc
Эта проблема возникает при создании обновленной команды конфигурации службы перед обновлением агента Arc. Это влияет только на версии Azure Arc старше 1.31 при обновлении до версии 1.31 или более поздней. Ошибка.
Подключение закрыто через порт UNKNOWN 65535
Решение.
- Удалите существующую конфигурацию службы и разрешите ее повторно создать командой CLI при следующем подключении. Выполните .
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
- Удалите существующую конфигурацию службы и разрешите ее повторно создать командой CLI при следующем подключении. Выполните .
Отключение SSH на серверах с поддержкой Arc
Эту функцию можно отключить:
Удалите порт SSH и функциональные возможности с сервера с поддержкой 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\"}}'
Удалите конечную точку подключения по умолчанию:
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
Следующие шаги
- Узнайте о доступе SSH к серверам с поддержкой Azure Arc.
- Узнайте об устранении неполадок с подключением агента.