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.
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:
- 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 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-addres "<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.