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

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

Diagram shows a connection via native client.

После настройки Бастиона для поддержки собственного клиента можно подключиться к виртуальной машине с помощью собственного клиента 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, убедитесь, что виртуальная машина настроена с помощью одного из следующих методов:

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

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

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

  • роль читателя на виртуальной машине;

  • роль читателя на сетевом адаптере с частным IP-адресом для виртуальной машины;

  • роль читателя для ресурса "Бастион Azure".

  • Роль входа пользователя виртуальной машины Администратор istrator или роль входа пользователя виртуальной машины, если вы используете метод входа в Microsoft Entra. Это необходимо сделать только в том случае, если вы включаете имя входа 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 бастиона 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).

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.

Шаги:

  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 для подключения к туннелю.

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

Отправка или скачивание файлов