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

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

O projeto Win32 OpenSSH torna a conectividade remota com o Secure Shell onipresente, fornecendo suporte nativo no Windows. O recurso é fornecido no Windows Server versão 2019 e posterior e pode ser adicionado 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 seguinte maneira.

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

Ativar SSH

Primeiro, você precisará habilitar o SSH em sua máquina Windows.

Implante a extensão SSH para Windows. A extensão fornece uma instalação automatizada da solução Win32 OpenSSH, semelhante a habilitar a 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 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 veja a seção Rede . Se vir um endereço IP junto a Endereço IP público, a sua VM tem um IP público. Para saber mais sobre como adicionar um endereço IP público a uma VM existente, consulte Associar um endereço IP público a uma máquina virtual

  • Verifique se sua VM está em execução. Na guia Visão geral, na seção essenciais, verifique se o status da VM está em execução. Para iniciar a VM, selecione Iniciar na parte superior da página.

Autenticação

Você pode autenticar em máquinas Windows usando nome de usuário e senha ou chaves SSH. O Azure não oferece suporte ao 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 de SSH e chaves

SSH é um protocolo de conexão criptografado que fornece entradas seguras 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-se a uma VM por SSH usando um par de chaves público-privado, também conhecido como chaves SSH.

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

  • A chave privada permanece no seu sistema local. Proteja esta chave privada. Não a partilhe.

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 tem a chave privada correta. Se o cliente tiver a chave privada, ele terá acesso à VM.

Dependendo das políticas de segurança da sua organização, pode reutilizar um único par de chaves público-privado para aceder a várias VMs e serviços do Azure. Você não precisa de um par separado de chaves para cada VM ou serviço que deseja acessar.

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

Formatos de chave SSH suportados

Atualmente, o Azure suporta os seguintes tipos de chave:

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

Outros formatos importantes, como Elliptic-curve Diffie-Hellman (ECDH) e Elliptic Curve Digital Signature Algorithm (ECDSA) não são suportados atualmente.

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 máquinas Windows e certificar-se de que 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'"

Conecte-se usando Az CLI

Conecte-se a máquinas Windows usando Az SSH comandos.

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, cujo padrão é a porta 3389.

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

Conectar-se a partir do portal do Azure

  1. Vá para o portal do Azure para se conectar a uma VM. Procure e selecione Máquinas Virtuais.
  2. Selecione a máquina virtual na lista.
  3. Selecione Conectar no menu à esquerda.
  4. Selecione a opção que se adapta à sua forma preferida de ligação. O portal ajuda a orientá-lo através dos pré-requisitos para a conexão.

Próximos passos

Saiba como transferir arquivos para uma VM existente, consulte Usar o SCP para mover arquivos de e para uma VM.