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


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

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

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

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

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

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

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

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

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