Conexión a una máquina virtual mediante Bastion y un cliente nativo de Windows

Este artículo le ayuda a conectarse a una máquina virtual en la red virtual mediante el cliente nativo (SSH o RDP) en su equipo Windows 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 de Bastion.

Diagram shows a connection via native client.

Después de configurar Bastion para la compatibilidad con el cliente nativo, puede conectarse a una máquina virtual mediante el cliente nativo de Windows. 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 en que puede conectarse desde un cliente nativo de Windows. 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 Windows mediante el comando az network bastion rdp.
  • Conéctese a una máquina virtual Linux mediante el comando az network bastion ssh.
  • Conéctese a cualquier máquina virtual mediante el comando az network bastion tunnel.
  • Carga y descarga de archivos en RDP.
  • Cargue archivos a través de SSH mediante az network bastion tunnel.

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

Los pasos de las secciones siguientes le ayudan a conectarse a una máquina virtual desde un cliente nativo de Windows mediante el comando az network bastion.

RDP a una máquina virtual Windows

Cuando un usuario se conecta a una VM Windows a través de RDP, debe tener derechos sobre la VM de destino. Si el usuario no es un administrador local, añádalo al grupo Usuarios de Escritorio Remoto en la máquina virtual de destino.

  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. Para conectarse mediante RDP, use el siguiente comando.

    az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
    
  3. Después de ejecutar el comando, se le pedirá que escriba las credenciales. Puede usar un nombre de usuario y una contraseña locales, o las credenciales de Microsoft Entra. 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 mediante MSTSC.

    Importante

    La conexión remota a máquinas virtuales unidas a Microsoft Entra ID solo se permite desde equipos Windows 10 o posteriores que estén registrados en Microsoft Entra (a partir de Windows 10 20H1), unidos a Microsoft Entra o unidos a Microsoft Entra híbrido en el mismo directorio que la máquina virtual.

Especifique un método de autenticación

Opcionalmente, también puede especificar el método de autenticación como parte del comando.

Especificar un puerto personalizado

Puede especificar un puerto personalizado al conectarse a una máquina virtual Windows a través de RDP.

Un escenario en el que esto podría ser especialmente útil sería conectarse a una máquina virtual Windows a través del puerto 22. Se trata de una posible solución alternativa para la limitación con el comando az network bastion ssh, que no puede usar un cliente nativo de Windows para conectarse a una máquina virtual Windows.

Para especificar un puerto personalizado, incluya el campo --resource-port en el comando de inicio de sesión, como se muestra en el ejemplo siguiente.

az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --resource-port "22"

RDP a una dirección IP de máquina virtual Windows

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, sustituya --target-resource-id por --target-ip-address y la dirección IP especificada para conectarse a su VM.

az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>"

SSH en una máquina virtual Linux

  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. Inicie sesión en la máquina virtual Linux de destino mediante una de las opciones de ejemplo siguientes. Si quiere especificar un valor de puerto personalizado, también debe incluir el campo --resource-port en el comando de inicio de sesión.

    Microsoft Entra ID:

    Si va a iniciar sesión en una máquina virtual habilitada para el inicio de sesión de Microsoft Entra, use el siguiente comando. 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"
    

    Par de claves SSH:

    Esta extensión se puede instalar al ejecutar az extension add --name ssh. Para iniciar sesión con un par de claves SSH, use el ejemplo siguiente.

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

    Nombre de usuario y contraseña:

    Si va a iniciar sesión con un nombre de usuario y una contraseña locales, use el comando siguiente. 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>"
    
  3. 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 la máquina virtual mediante la extensión de la CLI de SSH (az ssh).

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

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, sustituya --target-resource-id por --target-ip-address y la dirección IP especificada para conectarse a su VM.

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