Поделиться через


Подключение к виртуальной машине с помощью бастиона и собственного клиента Windows

Эта статья поможет подключиться к виртуальной машине в виртуальной сети с помощью собственного клиента (SSH или RDP) на локальном компьютере Windows. Функция собственного клиента позволяет подключаться к целевым виртуальным машинам через Бастион с помощью Azure CLI и развертывать параметры входа, чтобы включить локальную пару ключей SSH и идентификатор Microsoft Entra. Дополнительные сведения и действия по настройке Бастиона для собственных подключений клиентов см. в разделе "Настройка бастиона" для собственных подключений клиентов. Подключения через встроенный клиент требуют SKU Бастион "Стандарт" или выше.

На схеме показано подключение через собственный клиент.

После настройки Бастиона для поддержки собственного клиента можно подключиться к виртуальной машине с помощью собственного клиента Windows. Метод, используемый для подключения, зависит от клиента, от который вы подключаетесь, и от виртуальной машины, к которой вы подключаетесь. В следующем списке показаны некоторые доступные способы подключения из собственного клиента Windows. См. Подключение к ВМ для получения полного списка, показывающего доступные сочетания подключений и функций клиента.

  • Подключитесь к виртуальной машине Windows с помощью az network Bastion rdp.
  • Подключитесь к виртуальной машине Linux с помощью az network bastion ssh.
  • Подключитесь к виртуальной машине, используя az network bastion tunnel.
  • Передача файлов по протоколу RDP.
  • Передача файлов по протоколу SSH с помощью az network bastion tunnel.

Предварительные условия

Прежде чем приступить к работе, убедитесь, что у вас есть следующие необходимые компоненты:

  • Установлена последняя версия команд CLI (версия 2.32 или более поздняя). Вы можете обновить интерфейс командной строки для бастиона с помощью az extension update --name bastion. Дополнительные сведения о том, как установить Azure CLI, см. в разделе Установка Azure CLI и Начало работы с Azure CLI.
  • Бастион Azure уже развернут и настроен для виртуальной сети. Инструкции см. в разделе "Настройка бастиона" для собственных подключений клиентов.
  • Виртуальная машина в виртуальной сети.
  • Идентификатор ресурса виртуальной машины. Идентификатор ресурса можно легко найти на портале Azure. Перейдите на страницу "Обзор" для виртуальной машины и щелкните ссылку Представление JSON, чтобы открыть JSON-файл ресурса. Скопируйте идентификатор ресурса вверху страницы в буфер обмена, чтобы использовать его позже при подключении к виртуальной машине.
  • Если вы планируете войти на виртуальную машину с помощью учетных данных Microsoft Entra, убедитесь, что виртуальная машина настроена с помощью одного из следующих методов:

Проверка ролей и портов

Убедитесь, что для подключения к виртуальной машине настроены следующие роли и порты.

Обязательные роли

Порты

Чтобы подключиться к виртуальной машине Linux с помощью собственного клиента, на виртуальной машине Linux должны быть открыты следующие порты:

  • Входящий порт: SSH (22) или.
  • Входящий порт: пользовательское значение (при подключении к виртуальной машине через Бастион Azure необходимо указать этот пользовательский порт).

Чтобы подключиться к виртуальной машине Windows с помощью собственного клиента, на виртуальной машине Windows должны быть открыты следующие порты:

  • Входящий порт: RDP (3389) или
  • Входящий порт: пользовательское значение (при подключении к виртуальной машине через Бастион Azure необходимо указать этот пользовательский порт).

Сведения об оптимальной настройке групп безопасности сети с помощью Бастиона Azure см. в статье Работа с доступом группы безопасности сети и Бастионом Azure.

Подключение к виртуальной машине

Действия, описанные в следующих разделах, помогают подключиться к виртуальной машине из собственного клиента Windows с помощью команды az network bastion .

RDP на виртуальную машину Windows

Когда пользователь подключается к виртуальной машине Windows через RDP, он должен иметь права на целевую виртуальную машину. Если пользователь не является локальным администратором, добавьте пользователя в группу пользователей удаленных рабочих столов на целевой виртуальной машине.

  1. Войдите в учетную запись Azure с помощью az login. Если у вас несколько подписок, их можно просмотреть с помощью az account list и выбрать подписку, содержащую ресурс Бастиона, с помощью az account set --subscription "<subscription ID>".

  2. Чтобы подключиться через RDP, используйте следующий пример.

    az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
    
  3. После выполнения команды появится запрос на ввод учетных данных. Вы можете использовать локальное имя пользователя и пароль или учетные данные Microsoft Entra. После входа в целевую виртуальную машину, родной клиент на вашем компьютере откроется с сеансом вашей виртуальной машины через MSTSC.

    Внимание

    Удаленное подключение к виртуальным машинам, присоединенным к идентификатору Microsoft Entra, разрешено только с компьютеров с Windows 10 или более поздних версий, зарегистрированных в Microsoft Entra (начиная с Windows 10 20H1), присоединенных к Microsoft Entra, или гибридного подключения Microsoft Entra к тому же каталогу, что и виртуальная машина.

Указание метода проверки подлинности

При необходимости можно также указать метод проверки подлинности в рамках команды.

Укажите пользовательский порт

Можно указать пользовательский порт при подключении к виртуальной машине Windows с помощью RDP.

Один из сценариев, в котором это может быть особенно полезно, будет подключаться к виртуальной машине Windows через порт 22. Это возможный обходной путь для ограничения, связанного с командой az network bastion 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

  1. Войдите в учетную запись Azure с помощью az login. Если у вас несколько подписок, их можно просмотреть с помощью az account list и выбрать подписку, содержащую ресурс Бастиона, с помощью az account set --subscription "<subscription ID>".

  2. Войдите в целевую виртуальную машину 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>"
    
  3. После входа на целевую виртуальную машину родной клиент на вашем компьютере откроется с вашим сеансом виртуальной машины с помощью расширения SSH CLI (az ssh).

Подключиться к Linux VM по IP-адресу через SSH

Вы также можете подключиться к частному 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.

Пошаговые инструкции

  1. Войдите в учетную запись Azure с помощью az login. Если у вас несколько подписок, их можно просмотреть с помощью az account list и выбрать подписку, содержащую ресурс Бастиона, с помощью az account set --subscription "<subscription ID>".

  2. Откройте туннель для целевой виртуальной машины.

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. Подключитесь к целевой виртуальной машине с помощью 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>"

Туннель с несколькими подключениями

  1. Добавьте следующую команду в конфигурацию $HOME.ssh\.

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. Добавьте подключение туннеля к установленному туннелю.

    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
    
  3. Создайте туннель ssh в туннеле бастиона.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Используйте VS Code для подключения к туннелю.

Следующие шаги

Передача файлов