Подключение на виртуальную машину с помощью бастиона и собственного клиента Linux
Эта статья поможет подключиться через Бастион Azure к виртуальной машине в виртуальной сети с помощью собственного клиента на локальном компьютере Linux. Функция собственного клиента позволяет подключаться к целевым виртуальным машинам через Бастион с помощью Azure CLI и развертывать параметры входа, чтобы включить локальную пару ключей SSH и идентификатор Microsoft Entra. Дополнительные сведения и действия по настройке Бастиона для собственных подключений клиентов см. в разделе "Настройка бастиона" для собственных подключений клиентов. Подключение ions через собственный клиент требует номера SKU бастиона уровня "Стандартный" или более поздней версии.
После настройки Бастиона для поддержки собственного клиента можно подключиться к виртуальной машине с помощью собственного клиента Linux. Метод, используемый для подключения, зависит от клиента, от который вы подключаетесь, и от виртуальной машины, к которой вы подключаетесь. В следующем списке показаны некоторые доступные способы подключения из собственного клиента Linux. Ознакомьтесь с Подключение виртуальными машинами с полным списком с доступными сочетаниями подключений и функций клиента.
- Подключение на виртуальную машину Linux с помощью az network бастиона ssh.
- Подключение на виртуальную машину Windows с помощью az network бастиона туннеля.
- Подключение на любую виртуальную машину с помощью az network бастиона туннеля.
- Отправьте файлы на целевую виртуальную машину по протоколу SSH с помощью az network бастиона туннеля. Скачивание файлов с целевой виртуальной машины на локальный клиент в настоящее время не поддерживается для этой команды.
Необходимые компоненты
Прежде чем приступить к работе, убедитесь, что у вас есть следующие необходимые компоненты:
- Установлена последняя версия команд CLI (версия 2.32 или более поздняя). Вы можете обновить интерфейс командной строки для бастиона с помощью
az extension update --name bastion
. См. дополнительные сведения об установке Azure CLI 2.0 и начале работы с Azure CLI 2.0. - Бастион Azure уже развернут и настроен для виртуальной сети. Инструкции см. в разделе "Настройка бастиона" для собственных подключений клиентов.
- Виртуальная машина в виртуальной сети.
- Идентификатор ресурса виртуальной машины. Идентификатор ресурса можно легко найти на портале Azure. Перейдите на страницу "Обзор" для виртуальной машины и щелкните ссылку Представление JSON, чтобы открыть JSON-файл ресурса. Скопируйте идентификатор ресурса вверху страницы в буфер обмена, чтобы использовать его позже при подключении к виртуальной машине.
- Если вы планируете войти на виртуальную машину с помощью учетных данных Microsoft Entra, убедитесь, что виртуальная машина настроена с помощью одного из следующих методов:
- Включите вход Microsoft Entra для виртуальной машины Windows или виртуальной машины Linux.
- Настройте виртуальную машину Windows для присоединения к Microsoft Entra.
- Настройте виртуальную машину Windows для гибридного соединения Microsoft Entra.
Проверка ролей и портов
Убедитесь, что для подключения к виртуальной машине настроены следующие роли и порты.
Обязательные роли
роль читателя на виртуальной машине;
роль читателя на сетевом адаптере с частным IP-адресом для виртуальной машины;
роль читателя для ресурса "Бастион Azure".
Роль входа пользователя виртуальной машины Администратор istrator или роль входа пользователя виртуальной машины, если вы используете метод входа в Microsoft Entra. Это необходимо сделать только в том случае, если вы включаете имя входа Microsoft Entra с помощью процессов, описанных в одной из следующих статей:
Порты
Чтобы подключиться к виртуальной машине Linux с помощью собственного клиента, на виртуальной машине Linux должны быть открыты следующие порты:
- Входящий порт: SSH (22) или.
- Входящий порт: пользовательское значение (при подключении к виртуальной машине через Бастион Azure необходимо указать этот пользовательский порт).
Чтобы подключиться к виртуальной машине Windows с помощью собственного клиента, на виртуальной машине Windows должны быть открыты следующие порты:
- Входящий порт: RDP (3389) или
- Входящий порт: пользовательское значение (при подключении к виртуальной машине через Бастион Azure необходимо указать этот пользовательский порт).
Сведения об оптимальной настройке групп безопасности сети с помощью Бастиона Azure см. в статье Работа с доступом группы безопасности сети и Бастионом Azure.
Подключение к виртуальной машине Linux
Действия, описанные в следующих разделах, помогают подключиться к виртуальной машине Linux из собственного клиента Linux с помощью команды az network bastion . Это расширение можно установить, выполнив команду az extension add --name bastion
.
При подключении с помощью этой команды передача файлов не поддерживается. Если вы хотите отправить файлы, подключитесь с помощью команды az network бастиона туннеля .
Эта команда позволяет выполнить следующие действия:
- Подключение на виртуальную машину Linux с помощью SSH.
- Проверка подлинности с помощью идентификатора Microsoft Entra
- Подключение одновременные сеансы виртуальных машин в виртуальной сети.
Чтобы войти, используйте один из следующих примеров. После входа на целевую виртуальную машину собственный клиент на компьютере откроется с сеансом виртуальной машины.
Пара ключей SSH
Чтобы войти в виртуальную машину с помощью пары ключей SSH, используйте следующий пример.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Проверка подлинности Microsoft Entra
Если вы входите в виртуальную машину с поддержкой входа в Microsoft Entra, используйте следующий пример. Дополнительные сведения см. в статье о виртуальных машинах Linux Azure и идентификаторе Microsoft Entra.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
Имя пользователя и пароль
Если вы вошли на виртуальную машину с помощью локального имени пользователя и пароля, используйте следующий пример. Затем вам будет предложено ввести пароль для целевой виртуальной машины.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"
SSH-адрес виртуальной машины Linux
Вы можете подключиться к частному IP-адресу виртуальной машины вместо идентификатора ресурса. Помните, что проверка подлинности Microsoft Entra и пользовательские порты и протоколы не поддерживаются при использовании этого типа подключения. Дополнительные сведения о подключениях на основе IP-адресов см. в разделе Подключение к виртуальной машине — IP-адрес.
Используя команду, замените az network bastion
--target-resource-id
--target-ip-address
на указанный IP-адрес для подключения к виртуальной машине. В следующем примере используется ключ --ssh-key для метода проверки подлинности.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-addres "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Подключение на виртуальную машину — команда туннеля
Команда az network bastion tunnel — это еще один способ подключения к виртуальным машинам. При использовании этой команды можно выполнить следующее:
- Подключение из собственных клиентов на локальных компьютерах, отличных от Windows. (Например, компьютер Linux.)
- Подключение на виртуальную машину с помощью SSH или RDP. (Туннель бастиона не передает веб-серверы или узлы.)
- Использовать собственный клиент по выбору.
- Отправлять файлы на целевую виртуальную машину с локального компьютера. Скачивание файлов с целевой виртуальной машины на локальный клиент в настоящее время не поддерживается для этой команды.
Ограничения:
- Вход с помощью закрытого ключа SSH, хранящегося в Azure Key Vault, не поддерживается с этой функцией. Перед входом на виртуальную машину Linux с помощью пары ключей SSH скачайте закрытый ключ в файл на локальном компьютере.
- Эта функция не поддерживается в Cloud Shell.
Пошаговые инструкции
Войдите в учетную запись Azure с помощью
az login
. Если у вас несколько подписок, их можно просмотреть с помощьюaz account list
и выбрать подписку, содержащую ресурс Бастиона, с помощьюaz account set --subscription "<subscription ID>"
.Откройте туннель для целевой виртуальной машины.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Подключение на целевую виртуальную машину с помощью SSH или RDP, собственного клиента и порта локального компьютера, указанного на предыдущем шаге.
Например, если на локальном компьютере установлен клиент OpenSSH, вы можете использовать следующую команду:
ssh <username>@127.0.0.1 -p <LocalMachinePort>
Туннель к IP-адресу виртуальной машины
Вы также можете подключиться к частному IP-адресу виртуальной машины вместо идентификатора ресурса. Проверка подлинности Microsoft Entra, а также пользовательские порты и протоколы не поддерживаются при использовании этого типа подключения. Дополнительные сведения о подключениях на основе IP-адресов см. в разделе Подключение к виртуальной машине — IP-адрес.
Используя команду, замените az network bastion tunnel
--target-resource-id
--target-ip-address
на указанный IP-адрес для подключения к виртуальной машине.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Туннель с несколькими подключениями
Добавьте следующую команду в конфигурацию $HOME.ssh\.
Host tunneltunnel HostName 127.0.0.1 Port 2222 User mylogin StrictHostKeyChecking=No UserKnownHostsFile=\\.\NUL
Добавьте подключение туннеля к установленному подключению туннеля.
az network bastion tunnel --name mybastion --resource-group myrg --target-resource-id /subscriptions/<mysubscription>/resourceGroups/myrg/providers/Microsoft.Compute/virtualMachines/myvm --resource-port 22 --port 22
Создайте туннель ssh в туннеле бастиона.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Используйте VS Code для подключения к туннелю.