Conectar-se a uma VM usando o Bastion e o cliente nativo do Windows

Este artigo ajuda você a conectar-se a uma VM na VNet usando o cliente nativo (SSH ou RDP) em seu computador Windows 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ê pode se conectar a uma VM usando um cliente nativo do Windows. 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 Windows. 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 Windows usando az network bastion rdp.
  • Conecte-se a uma VM do Linux usando az network bastion ssh.
  • Conecte-se a uma VM usando az network bastion tunnel.
  • Carregar e baixar arquivos por RDP.
  • Carregue arquivos por SSH usando az network bastion tunnel.

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

As etapas nas seções a seguir ajudam você a se conectar a uma VM de um cliente nativo do Windows usando o comando az network bastion.

RDP para uma VM do Windows

Quando um usuário se conecta a uma VM do Windows via RDP, ele deve ter direitos na VM de destino. Se o usuário não for um administrador local, adicione o usuário ao grupo Usuários da Área de Trabalho Remota na VM de destino.

  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. Para se conectar por meio de RDP, use o exemplo a seguir.

    az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
    
  3. Depois de executar o comando, você será solicitado a inserir suas credenciais. Você pode usar um nome de usuário local e uma senha ou suas credenciais do Microsoft Entra. Depois de entrar na VM de destino, o cliente nativo no computador é aberto com a sessão da VM via MSTSC.

    Importante

    A conexão remota com VMs ingressadas na ID do Microsoft Entra é permitida somente de computadores windows 10 ou posteriores registrados pelo Microsoft Entra (começando com o Windows 10 20H1), o Microsoft Entra ingressado ou o Microsoft Entra hybrid ingressado no mesmo diretório que a VM.

Especifique o método de autenticação

Opcionalmente, você também pode especificar o método de autenticação como parte do comando .

Especifique m número de porta personalizado

Você pode especificar uma porta personalizada ao se conectar a uma VM do Windows via RDP.

Um cenário em que isso poderia ser especialmente útil seria conectar-se a uma VM do Windows por meio da porta 22. Essa é uma solução alternativa potencial para a limitação com o comando az network bastion ssh, que não pode ser usado por um cliente nativo do Windows para se conectar a uma VM do Windows.

Para especificar uma porta personalizada, inclua o campo --resource-port no comando de entrada, conforme mostrado no exemplo a seguir.

az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --resource-port "22"

RDP para um endereço IP de VM do Windows

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, substitua --target-resource-id por --target-ip-address e o endereço IP especificado para se conectar à VM.

az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>"

SSH para uma VM Linux

  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. Entre na VM do Linux de destino usando das opções de exemplo a seguir. Se desejar especificar um valor de porta personalizado, inclua o campo --resource-port no comando de entrada.

    – Microsoft Entra ID

    Se você estiver entrando em uma VM habilitada para logon do Microsoft Entra, use o comando 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"
    

    Par de chaves SSH:

    A extensão pode ser instalada executando-se az extension add --name ssh. Para entrar usando um par de chaves SSH, use o exemplo a seguir.

    az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"
    

    Nome de usuário/senha:

    Se você estiver entrando usando um nome de usuário local e uma senha, use o comando 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>"
    
  3. Depois de entrar na VM de destino, o cliente nativo no computador é aberto com a sessão da VM usando a extensão SSH da CLI (az ssh).

SSH para um endereço IP de VM do Linux

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, substitua --target-resource-id por --target-ip-address e o endereço IP especificado para se conectar à VM.

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