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 Bastion para conexões de cliente nativas. As conexões via cliente nativo requerem o Bastion Standard SKU.

Diagram shows a connection via native client.

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:

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.

  • 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 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 comando, substitua --target-resource-id por --target-ip-address e o az network bastion 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:

  1. Entre na sua conta do Azure usando az logino . Se você tiver mais de uma assinatura, poderá visualizá-las usando e selecionar a assinatura que contém seu recurso Bastion usando az account listaz account set --subscription "<subscription ID>".

  2. 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>"
    
  3. 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 comando, substitua --target-resource-id por --target-ip-address e o az network bastion tunnel 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

  1. Adicione o seguinte ao seu $HOME.ssh\config.

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. 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
    
  3. Crie um túnel ssh no túnel bastião.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Use o VS Code para se conectar à sua conexão de túnel.

Próximos passos

Carregar ou descarregar ficheiros