Como se conectar usando o SSH (Secure Shell) e entrar em uma máquina virtual do Azure que executa o Windows

Aplica-se a: ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis

O projeto Win32 OpenSSH torna a conectividade remota com o Secure Shell onipresente ao fornecer suporte nativo no Windows. A capacidade é fornecida no Windows Server versão 2019 e posterior e pode ser adicionada a versões mais antigas do Windows usando uma extensão de máquina virtual (VM).

Os exemplos abaixo usam variáveis. Você pode definir variáveis em seu ambiente da maneira a seguir.

Shell Exemplo
Bash/ZSH myResourceGroup='resGroup10'
PowerShell $myResourceGroup='resGroup10'

Habilitar SSH

Primeiro, você precisará habilitar o SSH no seu computador Windows.

Implante a extensão SSH para Windows. A extensão fornece uma instalação automatizada da solução Win32 OpenSSH, semelhante à habilitação da capacidade em versões mais recentes do Windows. Use os exemplos a seguir para implantar a extensão.

az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0

Abrir a porta TCP

Verifique se a porta apropriada (por padrão, TCP 22) está aberta para permitir a conectividade com a VM.

az network nsg rule create -g $myResourceGroup --nsg-name $myNSG -n allow-SSH --priority 1000 --source-address-prefixes 208.130.28.4/32 --destination-port-ranges 22 --protocol TCP
  • Sua VM deve ter um endereço IP público. Para verificar se sua VM tem um endereço IP público, selecione Visão geral no menu à esquerda e examine a seção Rede. Quando há um endereço IP ao lado de Endereço IP público, isso significa que sua VM tem um IP público. Para saber como adicionar um endereço IP público a uma VM existente, confira Associar um endereço IP público a uma máquina virtual.

  • Verifique se a VM está em execução. Na guia Visão geral, na seção Informações gerais, verifique se o status da VM está em execução. Na parte superior da página, selecione Iniciar para iniciar a VM.

Autenticação

Você pode autenticar em computadores Windows usando o nome de usuário e a senha ou as chaves SSH. O Azure não suporta o provisionamento de chaves públicas para máquinas Windows automaticamente, no entanto, você pode copiar a chave usando a extensão RunCommand.

Visão geral do SSH e das chaves

SSH é um protocolo de conexão criptografado que fornece logins seguros em conexões não seguras. Embora o SSH forneça uma conexão criptografada, o uso de senhas com conexões SSH ainda deixa a VM vulnerável a ataques de força bruta. Recomendamos conectar a uma VM por SSH usando um par de chaves públicas-privadas, também conhecidas como chaves SSH.

  • A chave pública é colocada em sua VM.

  • A chave privada permanece em seu sistema local. Proteja essa chave privada. Não a compartilhe.

Quando você usa um cliente SSH para se conectar à sua VM (que tem a chave pública), a VM remota testa o cliente para certificar-se de que ele possui a chave privada correta. Se o cliente tiver a chave privada, será concedido o acesso à VM.

Dependendo das políticas de segurança da sua organização, você pode reutilizar um único par de chaves públicas e privadas para acessar vários serviços e VMs do Azure. Não é preciso um par de chaves separado para cada VM ou serviço que você deseja acessar.

Sua chave pública pode ser compartilhada com qualquer pessoa, mas apenas você (ou sua infraestrutura de segurança local) deve ter acesso à sua chave privada.

Formatos de chave SSH compatíveis

Atualmente, o Azure dá suporte aos seguintes tipos de chave:

  • Protocolo SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) com um comprimento mínimo de 2048 bits
  • Chaves ED25519 com um comprimento fixo de 256 bits

Atualmente, não há suporte para outros formatos de chave como Diffie-Hellman de curva elíptica (ECDH) e Algoritmo de Assinatura Digital Curva Elíptica (ECDSA).

Copie uma chave pública usando a extensão RunCommand.

A extensão RunCommand fornece uma solução fácil para copiar uma chave pública em computadores Windows e verificar se o arquivo tem permissões corretas.

az vm run-command invoke -g $myResourceGroup -n $myVM --command-id RunPowerShellScript --scripts "MYPUBLICKEY | Add-Content 'C:\ProgramData\ssh\administrators_authorized_keys' -Encoding UTF8;icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F'"

Conectar usando Az CLI

Conecte-se a computadores Windows usando comandos Az SSH.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername

Também é possível criar um túnel de rede para portas TCP específicas através da conexão SSH. Um bom caso de uso para isso é a Área de Trabalho Remota, que usa como padrão a porta 3389.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389

Conectar do portal do Azure

  1. Vá para o portal do Azure a fim de se conectar a uma VM. Pesquise por Máquinas virtuais e selecione essa opção.
  2. Selecione a máquina virtual na lista.
  3. Selecione Conectar no menu esquerdo.
  4. Selecione a opção que se ajusta à sua maneira preferida de se conectar. O portal ajuda a orientar você sobre os pré-requisitos para se conectar.

Próximas etapas

Saiba como transferir arquivos para uma VM existente. Consulte Usar SCP para mover arquivos de e para uma VM.