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

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

Diagram shows a connection via native client.

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

  • Подключение на виртуальную машину Linux с помощью az network бастиона ssh.
  • Подключение на виртуальную машину Windows с помощью az network бастиона туннеля.
  • Подключение на любую виртуальную машину с помощью az network бастиона туннеля.
  • Отправьте файлы на целевую виртуальную машину по протоколу 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.

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

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

При подключении с помощью этой команды передача файлов не поддерживается. Если вы хотите отправить файлы, подключитесь с помощью команды az network бастиона туннеля .

Эта команда позволяет выполнить следующие действия:

  • Подключение на виртуальную машину Linux с помощью SSH.
  • Проверка подлинности с помощью идентификатора Microsoft Entra
  • Подключение одновременные сеансы виртуальных машин в виртуальной сети.

Чтобы войти, используйте один из следующих примеров. После входа на целевую виртуальную машину собственный клиент на компьютере откроется с сеансом виртуальной машины.

Пара ключей SSH

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

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.

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

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

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

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

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-addres "<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 для подключения к туннелю.

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

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