Подключение к виртуальной машине с помощью бастиона и собственного клиента Windows
Эта статья поможет подключиться к виртуальной машине в виртуальной сети с помощью собственного клиента (SSH или RDP) на локальном компьютере Windows. Функция собственного клиента позволяет подключаться к целевым виртуальным машинам через Бастион с помощью Azure CLI и развертывать параметры входа, чтобы включить локальную пару ключей SSH и идентификатор Microsoft Entra. Дополнительные сведения и действия по настройке Бастиона для собственных подключений клиентов см. в разделе "Настройка бастиона" для собственных подключений клиентов. Для подключений через собственный клиент требуется номер SKU "Бастион "Стандартный" или более поздней версии.
После настройки Бастиона для поддержки собственного клиента можно подключиться к виртуальной машине с помощью собственного клиента Windows. Метод, используемый для подключения, зависит от клиента, от который вы подключаетесь, и от виртуальной машины, к которой вы подключаетесь. В следующем списке показаны некоторые доступные способы подключения из собственного клиента Windows. Сведения о подключении к виртуальным машинам см. в полном списке с доступными сочетаниями подключений и компонентов клиента.
- Подключитесь к виртуальной машине Windows с помощью az network бастиона rdp.
- Подключитесь к виртуальной машине Linux с помощью az network бастиона ssh.
- Подключитесь к виртуальной машине с помощью туннеля az network бастиона.
- Передача файлов по протоколу RDP.
- Передача файлов по протоколу 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".
Роль входа администратора виртуальной машины или имени входа пользователя виртуальной машины, если вы используете метод входа в Microsoft Entra. Это необходимо сделать только в том случае, если вы включаете имя входа Microsoft Entra с помощью процессов, описанных в одной из следующих статей:
Порты
Чтобы подключиться к виртуальной машине Linux с помощью собственного клиента, на виртуальной машине Linux должны быть открыты следующие порты:
- Входящий порт: SSH (22) или.
- Входящий порт: пользовательское значение (при подключении к виртуальной машине через Бастион Azure необходимо указать этот пользовательский порт).
Чтобы подключиться к виртуальной машине Windows с помощью собственного клиента, на виртуальной машине Windows должны быть открыты следующие порты:
- Входящий порт: RDP (3389) или
- Входящий порт: пользовательское значение (при подключении к виртуальной машине через Бастион Azure необходимо указать этот пользовательский порт).
Сведения об оптимальной настройке групп безопасности сети с помощью Бастиона Azure см. в статье Работа с доступом группы безопасности сети и Бастионом Azure.
Подключение к виртуальной машине
Действия, описанные в следующих разделах, помогают подключиться к виртуальной машине из собственного клиента Windows с помощью команды az network bastion .
RDP на виртуальную машину Windows
Когда пользователь подключается к виртуальной машине Windows через RDP, он должен иметь права на целевую виртуальную машину. Если пользователь не является локальным администратором, добавьте пользователя в группу пользователей удаленных рабочих столов на целевой виртуальной машине.
Войдите в учетную запись Azure с помощью
az login
. Если у вас несколько подписок, их можно просмотреть с помощьюaz account list
и выбрать подписку, содержащую ресурс Бастиона, с помощьюaz account set --subscription "<subscription ID>"
.Чтобы подключиться через RDP, используйте следующий пример.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
После выполнения команды появится запрос на ввод учетных данных. Вы можете использовать локальное имя пользователя и пароль или учетные данные Microsoft Entra. После входа на целевую виртуальную машину собственный клиент на компьютере откроется с сеансом виртуальной машины через MSTSC.
Внимание
Удаленное подключение к виртуальным машинам, присоединенным к идентификатору Microsoft Entra, разрешено только с компьютеров с Windows 10 или более поздних версий, зарегистрированных в Microsoft Entra (начиная с Windows 10 20H1), присоединенных к Microsoft Entra, или гибридного подключения Microsoft Entra к тому же каталогу, что и виртуальная машина.
Указание метода проверки подлинности
При необходимости можно также указать метод проверки подлинности в рамках команды.
-
Проверка подлинности Microsoft Entra: для Windows 10 версии 20H2+, Windows 11 21H2+ и Windows Server 2022, используйте
--enable-mfa
. Дополнительные сведения см. в статье az network bastion rdp — необязательные параметры.
Указание пользовательского порта
Можно указать пользовательский порт при подключении к виртуальной машине Windows с помощью RDP.
Один из сценариев, в котором это может быть особенно полезно, будет подключаться к виртуальной машине Windows через порт 22. Это потенциальное решение для ограничения с помощью команды az network бастиона ssh , которая не может использоваться собственным клиентом Windows для подключения к виртуальной машине Windows.
Чтобы указать пользовательский порт, включите поле --resource-port в команду входа, как показано в следующем примере.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --resource-port "22"
RDP на IP-адрес виртуальной машины Windows
Вы также можете подключиться к частному IP-адресу виртуальной машины вместо идентификатора ресурса. Проверка подлинности Microsoft Entra, а также пользовательские порты и протоколы не поддерживаются при использовании этого типа подключения. Дополнительные сведения о подключениях на основе IP-адресов см. в разделе "Подключение к виртуальной машине — IP-адрес".
Используя команду, замените az network bastion
--target-resource-id
--target-ip-address
на указанный IP-адрес для подключения к виртуальной машине.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>"
SSH на виртуальную машину Linux
Войдите в учетную запись Azure с помощью
az login
. Если у вас несколько подписок, их можно просмотреть с помощьюaz account list
и выбрать подписку, содержащую ресурс Бастиона, с помощьюaz account set --subscription "<subscription ID>"
.Войдите в целевую виртуальную машину Linux с помощью одного из следующих вариантов. Если вы хотите указать настраиваемое значение порта, добавьте поле --resource-port в команду входа.
Идентификатор 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"
Пара ключей SSH:
Расширение можно установить, выполнив команду
az extension add --name ssh
. Чтобы войти с помощью пары ключей SSH, используйте следующий пример.az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Имя пользователя и пароль:
Если вы выполняете вход с помощью локального имени пользователя и пароля, используйте следующую команду. Затем вам будет предложено ввести пароль для целевой виртуальной машины.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"
После входа на целевую виртуальную машину собственный клиент на компьютере откроется с сеансом виртуальной машины с помощью расширения SSH CLI (az ssh).
SSH-адрес виртуальной машины Linux
Вы также можете подключиться к частному IP-адресу виртуальной машины вместо идентификатора ресурса. Проверка подлинности Microsoft Entra, а также пользовательские порты и протоколы не поддерживаются при использовании этого типа подключения. Дополнительные сведения о подключениях на основе IP-адресов см. в разделе "Подключение к виртуальной машине — IP-адрес".
Используя команду, замените az network bastion
--target-resource-id
--target-ip-address
на указанный IP-адрес для подключения к виртуальной машине.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<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 для подключения к туннелю.