Compartir a través de


Conexión a una VM mediante Bastion y un cliente nativo de Linux

Este artículo le ayuda a conectarse a una máquina virtual, a través de Azure Bastion, en la red virtual mediante el cliente nativo en su equipo Linux local. Esta característica de cliente nativa le permite conectarse a las VM de destino por medio de Bastion mediante la CLI de Azure y expande las opciones de inicio de sesión para incluir el par de claves SSH local y Microsoft Entra ID. Para obtener más información y pasos para configurar Bastion para conexiones de cliente nativas, consulte Configuración de Bastion para conexiones de cliente nativas. Las conexiones a través de un cliente nativo requieren el SKU estándar o superior de Bastion.

Diagrama que muestra una conexión a través del cliente nativo.

Después de configurar Bastion para la compatibilidad con el cliente nativo, puede conectarse a una máquina virtual mediante un cliente nativo de Linux. El método que se usa para conectarse depende del cliente desde el que se conecta y de la máquina virtual a la que se conecta. En la lista siguiente, se muestran algunas de las formas disponibles de conectarse desde un cliente nativo de Linux. Consulte Conexión a máquinas virtuales para obtener la lista completa en la que se muestran las combinaciones de características o conexión de cliente disponibles.

  • Conéctese a una máquina virtual Linux mediante el comando az network bastion ssh.
  • Conéctese a una máquina virtual Windows mediante el comando az network bastion tunnel.
  • Conéctese a cualquier máquina virtual mediante el comando az network bastion tunnel.
  • Cargue archivos en la máquina virtual de destino a través de SSH mediante az network bastion tunnel. La descarga de archivos de la VM de destino al cliente local no se admite actualmente en este comando.

Requisitos previos

Asegúrese de que dispone de los siguientes requisitos previos antes de empezar:

Comprobación de roles y puertos

Compruebe que los siguientes roles y puertos estén configurados para conectarse a la VM.

Roles necesarios

  • Rol Lector en la máquina virtual.

  • Rol de lector en la tarjeta de interfaz de red con la dirección IP privada de la máquina virtual.

  • Rol Lector en el recurso de Azure Bastion.

  • Rol de inicio de sesión de administrador de máquinas virtuales o de inicio de sesión de usuario de máquinas virtuales, si usa el método de inicio de sesión de Microsoft Entra. Solo tiene que hacerlo si va a habilitar el inicio de sesión de Microsoft Entra mediante los procesos descritos en uno de estos artículos:

Puertos

Para conectarse a una Linux VM mediante la compatibilidad con cliente nativo, debe tener abiertos los siguientes puertos en la Linux VM:

  • Puerto de entrada: SSH (22) o
  • Puerto de entrada: valor personalizado (tiene que especificar este puerto personalizado al conectarse a la máquina virtual por medio de Azure Bastion)

Para conectarse a una Windows VM mediante la compatibilidad con cliente nativo, debe tener abiertos los siguientes puertos en la Windows VM:

  • Puerto de entrada: RDP (3389) o
  • Puerto de entrada: valor personalizado (tiene que especificar este puerto personalizado al conectarse a la máquina virtual por medio de Azure Bastion)

Para más información sobre cómo configurar mejor los NSG con Azure Bastion, consulte Uso del acceso de NSG y Azure Bastion.

Conexión a una máquina virtual Linux

Los pasos de las secciones siguientes le ayudan a conectarse a una máquina virtual Linux desde un cliente nativo de Linux mediante el comando az network bastion. Esta extensión se puede instalar al ejecutar az extension add --name bastion.

Al conectarse mediante este comando, no se admiten las transferencias de archivos. Si quiere cargar archivos, conéctese mediante el comando az network bastion tunnel en su lugar.

Este comando le permite hacer lo siguiente:

  • Conexión a una máquina virtual Linux mediante SSH.
  • Autenticación mediante Microsoft Entra ID
  • Conéctese a sesiones simultáneas de máquina virtual dentro de la red virtual.

Para iniciar sesión, use uno de los siguientes ejemplos. Después de iniciar sesión en la máquina virtual de destino, el cliente nativo del equipo se abre con la sesión de máquina virtual.

Par de claves SSH

Para iniciar sesión en la máquina virtual con un par de claves SSH, use el siguiente ejemplo.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Autenticación de Microsoft Entra

Si va a iniciar sesión en una máquina virtual habilitada para el inicio de sesión de Microsoft Entra, use el siguiente ejemplo. Para obtener más información, consulte VM de Azure Linux y Microsoft Entra ID.

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

Nombre de usuario y contraseña

Si va a iniciar sesión en la máquina virtual con un nombre de usuario y una contraseña locales, use el siguiente ejemplo. Luego se le va a pedir la contraseña de la máquina virtual de destino.

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

SSH a una dirección IP de máquina virtual Linux

Puede conectarse a una dirección IP privada de máquina virtual en lugar del id. de recurso. Tenga en cuenta que la autenticación de Microsoft Entra y los puertos y protocolos personalizados no son compatibles cuando se utiliza este tipo de conexión. Para más información sobre conexiones basadas en IP, consulte Conectarse a una VM - Dirección IP.

Mediante el comando az network bastion, sustituya --target-resource-id por --target-ip-address y la dirección IP especificada para conectarse a su VM. En el ejemplo siguiente, se usa --ssh-key para el método de autenticación.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Conexión a una máquina virtual: comando tunnel

El comando az network bastion tunnel es otra manera de conectarse a las máquinas virtuales. Al usar este comando, puede hacer lo siguiente:

  • Conéctese desde clientes nativos en equipos locales que no son Windows. (Por ejemplo, un equipo Linux).
  • Conéctese a una máquina virtual mediante SSH o RDP. (El "bastion tunnel" no retransmite servidores web ni hosts).
  • Use un cliente nativo de su elección.
  • Cargue archivos a la VM de destino desde su equipo local. La descarga de archivos de la VM de destino al cliente local no se admite actualmente en este comando.

Limitaciones:

  • El inicio de sesión con una clave privada SSH almacenada en Azure Key Vault no se admite con esta característica. Descargue la clave privada en un archivo del equipo local antes de iniciar sesión en la VM Linux con un par de claves SSH.
  • Esta característica no se admite en Cloud Shell.

Pasos:

  1. Inicie sesión en la cuenta de Azure mediante az login. Si tiene más de una suscripción, puede verlas mediante az account list y tras seleccionar la suscripción que contiene el recurso de Bastion mediante az account set --subscription "<subscription ID>".

  2. Abra el túnel hacia la máquina virtual de destino.

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. Conéctese a la VM de destino mediante SSH o RDP, el cliente nativo de su elección y el puerto de la máquina local que ha especificado en el paso anterior.

    Por ejemplo, puede usar el siguiente comando si tiene instalado el cliente OpenSSH en la máquina local:

    ssh <username>@127.0.0.1 -p <LocalMachinePort>
    

Túnel a una dirección IP de máquina virtual

También puede conectarse a una dirección IP privada de máquina virtual, en lugar del id. de recurso. La autenticación de Microsoft Entra y los puertos y protocolos personalizados no son compatibles cuando se utiliza este tipo de conexión. Para más información sobre conexiones basadas en IP, consulte Conectarse a una VM - Dirección IP.

Mediante el comando az network bastion tunnel, sustituya --target-resource-id por --target-ip-address y la dirección IP especificada para conectarse a su VM.

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

Túnel de varias conexiones

  1. Agregue lo siguiente a su $HOME.ssh\config.

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. Agregue la conexión de túnel a la conexión de túnel establecida.

    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. Cree un túnel ssh en el túnel bastión.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Use VS Code para conectarse a la conexión de túnel.

Pasos siguientes

Carga o descarga de archivos