Conectar-se a uma VM usando o Bastion e o cliente nativo do Linux
Este artigo ajuda você a se conectar por meio do Azure Bastion a uma VM em uma VNet usando o cliente nativo em seu computador Linux local. O recurso de cliente nativo permite que você se conecte às VMs de destino por meio do Bastion usando a CLI do Azure e expande as opções de entrada para incluir o par de chaves SSH local e o Microsoft Entra ID. Para obter mais informações e etapas de configuração do Bastion para conexões de cliente nativo, confira Configurar o Bastion para conexões de cliente nativo. As conexões por meio do cliente nativo exigem o SKU Standard ou superior do Bastion.
Depois de configurar o Bastion para suporte ao cliente nativo, você poderá se conectar a uma VM usando um cliente nativo do Linux. O método usado 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 de um cliente nativo do Linux. Confira Conectar-se a VMs para obter a lista completa mostrando as combinações de conexão/recurso do cliente disponíveis.
- Conecte-se a uma VM do Linux usando az network bastion ssh.
- Conecte-se a uma VM do Windows usando az network bastion tunnel.
- Conecte-se a qualquer VM usando az network bastion tunnel.
- Carregue arquivos para sua VM de destino por SSH usando az network bastion tunnel. No momento, não há suporte para download de arquivo da VM de destino para o cliente local para esse comando.
Pré-requisitos
Antes de começar, verifique se você atende aos 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
. Para saber mais sobre como instalar os comandos da CLI, confira Instalar a CLI do Azure e Introdução à CLI do Azure. - O Azure Bastion já está implantado e configurado para a sua rede virtual. Para ver as etapas, confira Configurar o Bastion para conexões de cliente nativo.
- Uma máquina virtual na rede virtual.
- A ID de recurso da VM. A ID do recurso pode ser localizada com facilidade no portal do Azure. Acesse a página Visão geral da VM e selecione o link Exibição JSON para abrir o JSON do recurso. Copie a ID do recurso na parte superior da página para a área de transferência para uso posterior ao se conectar à VM.
- Se você pretende se conectar à máquina virtual usando suas credenciais do Microsoft Entra, verifique se ela está configurada usando um dos métodos a seguir:
- Habilitar as credenciais do Microsoft Entra em uma VM do Windows ou em uma VM do Linux.
- Configurar sua VM do Windows para ser ingressada no Microsoft Entra.
- Configurar sua VM do Windows para ser ingressada de forma híbrida no Microsoft Entra.
Verificar funções e portas
Verifique se as seguintes funções e portas estão configuradas para se conectar à VM.
Funções necessárias
A função de leitor na máquina virtual.
A função de leitor na placa de interface de rede com endereço IP privado da máquina virtual.
Função de leitor no recurso do Azure Bastion.
Função de logon 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ó precisará fazer isso se estiver habilitando o logon do Microsoft Entra usando os processos descritos em um destes artigos:
Portas
Para se conectar a uma VM do Linux quando o suporte ao cliente nativo, você deve ter as seguintes portas abertas em sua VM do Linux:
- Porta de Entrada: SSH (22) ou
- Porta de entrada: valor personalizado (você precisará especificar essa porta personalizada ao se conectar à VM por meio do Azure Bastion)
Para se conectar a uma VM do Windows usando o suporte ao cliente nativo, você deve ter as seguintes portas abertas em sua VM do Windows:
- Porta de entrada: RDP (3389) ou
- Porta de entrada: valor personalizado (você precisará especificar essa porta personalizada ao se conectar à VM por meio do Azure Bastion)
Para saber mais sobre como configurar melhor os NSGs com o Azure Bastion, consulte Trabalhando com o acesso do NSG e o Azure Bastion.
Conectar-se a uma VM do Linux
As etapas nas seções a seguir ajudam você a se conectar a uma VM do Linux de um cliente nativo usando o comando az network bastion. Essa extensão pode ser instalada executando az extension add --name bastion
.
Quando você se conecta usando esse comando, não há suporte para transferências de arquivo. Se você quiser carregar arquivos, conecte-se usando o comandoaz network bastion tunnel.
Esse comando permite fazer o seguinte:
- Conectar-se a uma VM do Linux usando SSH.
- Autenticar via Microsoft Entra ID
- Conecte-se a sessões de VM simultâneas na rede virtual.
Para entrar, use um dos exemplos a seguir. Depois de entrar em sua VM de destino, o cliente nativo em seu computador será aberto com sua sessão de 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 logon no Microsoft Entra, use o exemplo a seguir. Para obter mais informações, confira VMs do Azure Linux e Microsoft Entra ID.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"
Nome de usuário/senha
Se você estiver entrando em sua VM usando um nome de usuário e senha locais, use o exemplo a seguir. Em seguida, será solicitado que você forneça a senha da 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 do Linux
Você também pode se conectar a um endereço IP privado da VM, no lugar da ID do recurso. A autenticação do Microsoft Entra e as portas e protocolos personalizados não têm suporte ao usar esse tipo de conexão. Para obter mais informações sobre as conexões baseadas em IP, confira Conectar-se a uma VM – endereço IP.
Usando o comando az network bastion
, substitua --target-resource-id
por --target-ip-address
e o endereço IP especificado para se conectar à VM. O exemplo a seguir usa --ssh-chave para o método de autenticação.
az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
Conectar a uma VM - comando do túnel
O comando az network bastion tunnel é outra maneira de se conectar às VMs. Ao usar esse comando, você pode fazer o seguinte:
- Conecte-se de clientes nativos em computadores locais não 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 um cliente nativo de sua escolha.
- Carregue arquivos do computador local para sua VM de destino. No momento, não há suporte para download de arquivo da VM de destino para o cliente local para esse comando.
Limitações:
- Não há suporte para entrar usando uma chave privada SSH armazenada no Azure Key Vault com esse recurso. Antes de entrar em sua VM do Linux usando um par de chaves SSH, baixe sua chave privada em um arquivo em seu computador local.
- Esse recurso não é compatível com o Cloud Shell.
Etapas:
Entre em sua conta do Azure usando
az login
. Caso tenha mais de uma assinatura, você pode vê-la usandoaz account list
e selecione aquela que contém o recurso do Bastion usandoaz account set --subscription "<subscription ID>"
.Abra o túnel para sua 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 o SSH ou o RDP, o cliente nativo de sua escolha e a porta do computador local especificada na etapa anterior.
Por exemplo, você poderá 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 da ID do recurso. A autenticação do Microsoft Entra e as portas e protocolos personalizados não têm suporte ao usar esse tipo de conexão. Para obter mais informações sobre as conexões baseadas em IP, confira Conectar-se a uma VM – endereço IP.
Usando o comando az network bastion tunnel
, substitua --target-resource-id
por --target-ip-address
e o endereço IP especificado para se conectar à VM.
az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
Túnel de várias conexões
Adicione o seguinte ao seu arquivo $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 do Bastion.
ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
Utilize o VS Code para se conectar à sua conexão de túnel.