Прочитать на английском

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


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

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

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

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

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

Необходимые компоненты

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

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

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

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

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

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

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

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

  • Роль входа администратора виртуальной машины или имени входа пользователя виртуальной машины, если вы используете метод входа в 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, используйте следующий пример.

Azure CLI
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.

Azure CLI
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"

Имя пользователя и пароль

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

Azure CLI
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 для метода проверки подлинности.

Azure CLI
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. Откройте туннель для целевой виртуальной машины.

    Azure CLI
    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. Подключитесь к целевой виртуальной машине с помощью SSH или RDP, собственного клиента и порта локального компьютера, указанного на предыдущем шаге.

    Например, если на локальном компьютере установлен клиент OpenSSH, вы можете использовать следующую команду:

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

Azure CLI
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"

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

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

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

    Azure CLI
    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 в туннеле бастиона.

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

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

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