Подключение к виртуальной машине с помощью бастиона и собственного клиента 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. Перейдите на страницу "Обзор" для виртуальной машины и щелкните ссылку Представление JSON, чтобы открыть JSON-файл ресурса. Скопируйте идентификатор ресурса вверху страницы в буфер обмена, чтобы использовать его позже при подключении к виртуальной машине.
Если вы планируете войти на виртуальную машину с помощью учетных данных Microsoft Entra, убедитесь, что виртуальная машина настроена с помощью одного из следующих методов:
Включите вход Microsoft Entra для виртуальной машины Windows или виртуальной машины Linux.
Убедитесь, что для подключения к виртуальной машине настроены следующие роли и порты.
Обязательные роли
роль читателя на виртуальной машине;
роль читателя на сетевом адаптере с частным IP-адресом для виртуальной машины;
роль читателя для ресурса "Бастион Azure".
Роль входа администратора виртуальной машины или имени входа пользователя виртуальной машины, если вы используете метод входа в Microsoft Entra. Это необходимо сделать только в том случае, если вы включаете имя входа Microsoft Entra с помощью процессов, описанных в одной из следующих статей:
Действия, описанные в следующих разделах, помогают подключиться к виртуальной машине 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.
Пошаговые инструкции
Войдите в учетную запись Azure с помощью az login. Если у вас несколько подписок, их можно просмотреть с помощью az account list и выбрать подписку, содержащую ресурс Бастиона, с помощью az account set --subscription "<subscription ID>".
Откройте туннель для целевой виртуальной машины.
Azure CLI
az network bastion tunnel --name"<BastionName>"--resource-group"<ResourceGroupName>"--target-resource-id"<VMResourceId or VMSSInstanceResourceId>"--resource-port"<TargetVMPort>"--port"<LocalMachinePort>"
Подключитесь к целевой виртуальной машине с помощью 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>"
Туннель с несколькими подключениями
Добавьте следующую команду в конфигурацию $HOME.ssh\.
Azure CLI
Host tunneltunnel
HostName 127.0.0.1
Port 2222
User mylogin
StrictHostKeyChecking=No
UserKnownHostsFile=\\.\NUL
Добавьте подключение туннеля к установленному подключению туннеля.