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 la versión Estándar de la SKU de Bastion, o cualquier versión superior.
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:
- Se instala la versión más reciente de los comandos de la CLI (versión 2.32 o posterior). Puede actualizar la CLI para Bastion mediante
az extension update --name bastion
. Para más información acerca de la instalación de los comandos de la CLI, consulte Instalación de la CLI de Azure y Introducción a la CLI de Azure. - Azure Bastion ya está implementado y configurado para la red virtual. Para ver los pasos, consulte Configurar Bastion para conexiones de cliente nativas.
- Una máquina virtual en la red virtual.
- El identificador de recursos de la VM. El identificador de recursos se puede encontrar fácilmente en Azure Portal. Vaya a la página de información general de la VM y seleccione el vínculo Vista JSON para abrir el código JSON del recurso. Copie el identificador de recurso de la parte superior de la página en el Portapapeles para usarlo más adelante al conectarse a la máquina virtual.
- Si tiene previsto iniciar sesión en la máquina virtual con las credenciales de Microsoft Entra, asegúrese de que la máquina virtual está configurada mediante uno de los métodos siguientes:
- Habilite el inicio de sesión de Microsoft Entra en una VM Windows o una VM Linux.
- Configure la VM Windows para que esté unida a Microsoft Entra.
- Configure la VM Windows para que tenga una unión híbrida a Microsoft Entra.
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.
Inicie sesión en la cuenta de Azure mediante
az login
. Si tiene más de una suscripción, puede verlas medianteaz account list
y tras seleccionar la suscripción que contiene el recurso de Bastion medianteaz account set --subscription "<subscription ID>"
.Para conectarse mediante RDP, use el siguiente comando.
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
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.
- Autenticación de Microsoft Entra: para Windows 10 versión 20H2+, Windows 11 21H2+ y Windows Server 2022, use
--enable-mfa
. Para más información, vea az network bastion rdp: parámetros opcionales.
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
Inicie sesión en la cuenta de Azure mediante
az login
. Si tiene más de una suscripción, puede verlas medianteaz account list
y tras seleccionar la suscripción que contiene el recurso de Bastion medianteaz account set --subscription "<subscription ID>"
.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>"
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:
Inicie sesión en la cuenta de Azure mediante
az login
. Si tiene más de una suscripción, puede verlas medianteaz account list
y tras seleccionar la suscripción que contiene el recurso de Bastion medianteaz account set --subscription "<subscription ID>"
.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>"
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
Agregue lo siguiente a su $HOME.ssh\config.
Host tunneltunnel HostName 127.0.0.1 Port 2222 User mylogin StrictHostKeyChecking=No UserKnownHostsFile=\\.\NUL
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
Cree un túnel ssh en el túnel bastión.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Use VS Code para conectarse a la conexión de túnel.