Conectar-se a uma VM usando Bastion e um cliente nativo do Linux
Este artigo ajuda você a se conectar via Azure Bastion a uma VM em VNet usando o cliente nativo em seu computador Linux local. O recurso de cliente nativo permite que você se conecte às VMs de destino via Bastion usando a CLI do Azure e expande suas opções de entrada para incluir o par de chaves SSH local e a ID do Microsoft Entra. Para obter mais informações e etapas para configurar o Bastion para conexões de cliente nativas, consulte Configurar o Bastion para conexões de cliente nativas. As conexões via cliente nativo exigem o Bastion Standard SKU ou superior.
Depois de configurar o Bastion para suporte ao cliente nativo, você pode se conectar a uma VM usando um cliente Linux nativo. O método que você usa para se conectar depende do cliente do qual você está se conectando e da VM à qual você está se conectando. A lista a seguir mostra algumas das maneiras disponíveis de se conectar a partir de um cliente nativo do Linux. Consulte Conectar-se a VMs para obter a lista completa mostrando as combinações de conexão de cliente/recurso disponíveis.
- Conecte-se a uma VM Linux usando az network bastion ssh.
- Conecte-se a uma VM do Windows usando az network bastion tunnel.
- Conecte-se a qualquer VM usando o túnel bastion az network.
- Carregue arquivos para sua VM de destino por SSH usando o túnel bastion az network. Atualmente, não há suporte para o download de arquivos da VM de destino para o cliente local para este comando.
Pré-requisitos
Antes de começar, verifique se você tem os seguintes pré-requisitos:
- A versão mais recente dos comandos da CLI (versão 2.32 ou posterior) está instalada. Você pode atualizar sua CLI para Bastion usando
az extension update --name bastion
o . Para obter informações sobre como instalar os comandos da CLI, veja Instalar a CLI do Azure e Introdução à CLI do Azure. - O Azure Bastion já está implantado e configurado para sua rede virtual. Para conhecer as etapas, consulte Configurar Bastion para conexões de cliente nativas.
- Uma máquina virtual na rede virtual.
- O ID de recurso da VM. A ID do Recurso pode ser facilmente localizada no portal do Azure. Vá para a página Visão geral da sua VM e selecione o link Visualização JSON para abrir o JSON de recurso. Copie o ID do recurso na parte superior da página para a área de transferência para usar mais tarde ao se conectar à sua VM.
- Se você planeja entrar em sua máquina virtual usando suas credenciais do Microsoft Entra, verifique se a máquina virtual está configurada usando um dos seguintes métodos:
- Habilite a entrada do Microsoft Entra para uma VM do Windows ou Linux VM.
- Configure sua VM do Windows para que o Microsoft Entra seja associado.
- Configure sua VM do Windows para que o Microsoft Entra ingresse híbrido.
Verificar funções e portas
Verifique se as seguintes funções e portas estão configuradas para se conectar à VM.
Funções necessárias
Função de leitor na máquina virtual.
Função de leitor na NIC com IP privado da máquina virtual.
Função de leitor no recurso Azure Bastion.
Função de Login de Administrador de Máquina Virtual ou Logon de Usuário de Máquina Virtual, se você estiver usando o método de entrada do Microsoft Entra. Você só precisa fazer isso se estiver habilitando o login do Microsoft Entra usando os processos descritos em um destes artigos:
Portas
Para se conectar a uma VM Linux usando o suporte nativo ao cliente, você deve ter as seguintes portas abertas em sua VM Linux:
- Porta de entrada: SSH (22) ou
- Porta de entrada: valor personalizado (você precisará especificar essa porta personalizada quando se conectar à VM por meio do Azure Bastion)
Para se conectar a uma VM do Windows usando o suporte nativo ao cliente, você deve ter as seguintes portas abertas na VM do Windows:
- Porta de entrada: RDP (3389) ou
- Porta de entrada: valor personalizado (você precisará especificar essa porta personalizada quando se conectar à VM por meio do Azure Bastion)
Para saber como configurar melhor os NSGs com o Azure Bastion, consulte Trabalhando com acesso ao NSG e Azure Bastion.
Ligar a uma VM do Linux
As etapas nas seções a seguir ajudam você a se conectar a uma VM Linux a partir de um cliente nativo do Linux usando o comando az network bastion . Esta extensão pode ser instalada executando, az extension add --name bastion
.
Quando você se conecta usando esse comando, as transferências de arquivos não são suportadas. Se você quiser carregar arquivos, conecte-se usando o comando az network bastion tunnel .
Este comando permite que você faça o seguinte:
- Conecte-se a uma VM Linux usando SSH.
- Autenticar através do Microsoft Entra ID
- Conecte-se a sessões simultâneas de VM na rede virtual.
Para entrar, use um dos exemplos a seguir. Depois de entrar na VM de destino, o cliente nativo no computador é aberto com a sessão da VM.
Par de chaves SSH
Para entrar em sua VM usando um par de chaves SSH, use o exemplo a seguir.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Autenticação do Microsoft Entra
Se você estiver entrando em uma VM habilitada para login do Microsoft Entra, use o exemplo a seguir. Para obter mais informações, consulte Azure Linux VMs e Microsoft Entra ID.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
Nome de utilizador/palavra-passe
Se você estiver entrando em sua VM usando um nome de usuário e senha locais, use o exemplo a seguir. Em seguida, será solicitada a senha para a VM de destino.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"
SSH para um endereço IP de VM Linux
Você pode se conectar a um endereço IP privado da VM em vez do ID do recurso. Lembre-se de que a autenticação do Microsoft Entra e as portas e protocolos personalizados não são suportados ao usar esse tipo de conexão. Para obter mais informações sobre conexões baseadas em IP, consulte Conectar-se a uma VM - Endereço IP.
Usando o az network bastion
comando, substitua --target-resource-id
por --target-ip-address
e o endereço IP especificado para se conectar à sua VM. O exemplo a seguir usa --ssh-key para o método de autenticação.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-addres "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Conectar-se a uma VM - comando tunnel
O comando az network bastion tunnel é outra maneira de se conectar às suas VMs. Ao usar esse comando, você pode fazer o seguinte:
- Conecte-se a partir de clientes nativos em computadores locais que não sejam Windows. (Por exemplo, um computador Linux.)
- Conecte-se a uma VM usando SSH ou RDP. (O túnel bastion não retransmite servidores Web ou hosts.)
- Use o cliente nativo de sua escolha.
- Carregue ficheiros para a VM de destino a partir do computador local. Atualmente, não há suporte para o download de arquivos da VM de destino para o cliente local para este comando.
Limitações:
- Não há suporte para entrar usando uma chave privada SSH armazenada no Cofre de Chaves do Azure com esse recurso. Antes de entrar em sua VM Linux usando um par de chaves SSH, baixe sua chave privada para um arquivo em sua máquina local.
- Esse recurso não é compatível com o Cloud Shell.
Passos:
Entre na sua conta do Azure usando
az login
o . Se você tiver mais de uma assinatura, poderá visualizá-las usandoaz account list
e selecionar a assinatura que contém seu recurso Bastion usandoaz account set --subscription "<subscription ID>"
.Abra o túnel para a VM de destino.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Conecte-se à VM de destino usando SSH ou RDP, o cliente nativo de sua escolha e a porta da máquina local especificada na etapa anterior.
Por exemplo, você pode usar o seguinte comando se tiver o cliente OpenSSH instalado no computador local:
ssh <username>@127.0.0.1 -p <LocalMachinePort>
Túnel para um endereço IP da VM
Você também pode se conectar a um endereço IP privado da VM, em vez do ID do recurso. A autenticação do Microsoft Entra e as portas e protocolos personalizados não são suportados ao usar esse tipo de conexão. Para obter mais informações sobre conexões baseadas em IP, consulte Conectar-se a uma VM - Endereço IP.
Usando o az network bastion tunnel
comando, substitua --target-resource-id
por --target-ip-address
e o endereço IP especificado para se conectar à sua VM.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Túnel multiconexão
Adicione o seguinte ao seu $HOME.ssh\config.
Host tunneltunnel HostName 127.0.0.1 Port 2222 User mylogin StrictHostKeyChecking=No UserKnownHostsFile=\\.\NUL
Adicione a conexão de túnel à sua conexão de túnel estabelecida.
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
Crie um túnel ssh no túnel bastião.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Use o VS Code para se conectar à sua conexão de túnel.