Compartilhar via


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.

Diagrama mostrando um exemplo de conexão por meio do computador cliente.

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:

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:

  1. Entre em sua conta do Azure usando az login. Caso tenha mais de uma assinatura, você pode vê-la usando az account list e selecione aquela que contém o recurso do Bastion usando az account set --subscription "<subscription ID>".

  2. 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>"
    
  3. 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

  1. Adicione o seguinte ao seu arquivo $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 do Bastion.

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

Próximas etapas

Carregar ou baixar arquivos