Como usar chaves SSH com o Windows no Azure

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

Este artigo é para usuários do Windows que desejam criar e usar chaves Secure Shell (SSH) para se conectar a VMS (máquinas virtuais) do Linux no Azure. Você também pode gerar e armazenar chaves SSH no portal do Azure para usar ao criar VMs no portal.

Para usar as chaves SSH de um cliente Linux ou macOS, consulte as etapas rápidas. Para obter uma visão geral mais detalhada do SSH, consulte Etapas detalhadas: criar e gerenciar chaves SSH para autenticação em uma VM do Linux no Azure.

Visão geral do SSH e das chaves

O SSH é um protocolo de conexão criptografado que permite credenciais seguras em conexões não protegidas. SSH é o protocolo de conexão padrão para as VMs Linux hospedadas no Azure. Embora o SSH em si forneça uma conexão criptografada, usar senhas com 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.

O par de chaves públicas-privadas é como a fechadura na sua porta da frente. A fechadura está exposta ao público, qualquer pessoa com a chave correta pode abrir a porta. A chave é privada e só é fornecida às pessoas confiáveis, pois podem ser usadas para abrir a porta.

  • A chave pública é colocada em sua VM do Linux quando você cria a VM.

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

Quando você se conecta à sua VM do Linux, a VM testa o cliente SSH para se certificar que tem 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 para acessar vários serviços e VMs do Azure. Você não precisa de um par separado de chaves para cada VM.

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 importantes, como Diffie–Hellman (ECDH) e Algoritmo de Assinatura Digital de Curvas Elípticas (ECDSA).

Clientes SSH

Versões recentes do Windows 10 incluem comandos do cliente OpenSSH para criar e gerenciar chaves SSH e fazer conexões SSH do PowerShell ou de um prompt de comando.

Você também pode usar o Bash no Azure Cloud Shell para se conectar à sua VM. Você pode usar o Cloud Shell em um navegador da Web, no portal do Azureou como um terminal no Visual Studio Code usando a extensão de Conta do Azure.

Você também pode instalar o Subsistema do Windows para Linux para se conectar à VM por SSH e usar outras ferramentas nativas do Linux em um shell do Bash.

Criar um par de chaves SSH

A maneira mais fácil de criar e gerenciar suas chaves SSH é usar o portal para criar e armazená-las para reutilização.

Também é possível criar pares de chaves com a CLI do Azure com o comando az sshkey create, conforme descrito em Gerar e armazenar chaves SSH.

Para criar um par de chaves SSH no computador local usando o comando ssh-keygen do PowerShell ou um prompt de comando, use o seguinte comando:

ssh-keygen -m PEM -t rsa -b 2048

Insira um nome de arquivo ou use o padrão mostrado entre parênteses (por exemplo, C:\Users\username/.ssh/id_rsa). Insira uma frase secreta para o arquivo ou deixe a frase secreta em branco se você não quiser usar uma frase secreta.

Criar uma VM usando sua chave

Para criar uma VM do Linux que usa chaves SSH para autenticação, forneça sua chave SSH pública ao criar a VM.

Usando o CLI do Azure, você especifica o caminho e o nome do arquivo para a chave pública usando o parâmetro az vm create e --ssh-key-value.

az vm create \
   --resource-group myResourceGroup \
   --name myVM \
   --image Ubuntu2204\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

Com o PowerShell, use New-AzVM e adicione a chave SSH à configuração da VM usando: Como exemplo, consulte Início rápido: criar uma máquina virtual do Linux no Azure com o PowerShell.

Se você fizer muitas implantações usando o portal, talvez queira carregar sua chave pública no Azure, onde ela pode ser facilmente selecionada ao criar uma VM no portal. Para obter mais informações, consulte Carregar uma chave SSH.

Conectar-se à sua VM

Com a chave pública implantada em sua VM do Azure e a chave privada em seu sistema local, realize SSH para sua VM usando o endereço IP ou nome DNS da VM. Substitua azureuser e 10.111.12.123 no comando a seguir pelo nome de usuário do administrador, o endereço IP (ou nome de domínio totalmente qualificado) e o caminho para a chave privada:

ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123

Se você nunca se conectou a essa VM antes, precisará verificar a impressão digital dos hosts. É tentador aceitar a impressão digital apresentada, mas isso expõe você a um possível ataque person-in-the-middle. Você sempre deve validar a impressão digital do host. Você precisará fazer isso apenas na primeira vez que se conectar a um cliente. Para obter a impressão digital do host pelo portal, use Executar Comando com o seguinte comando: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Captura de tela mostrando o uso do recurso Executar comando para validar a impressão digital do host.

Para executar o comando usando a CLI, use o comando az vm run-command invoke.

Se você configurou uma frase secreta quando criou o par de chaves, insira-a quando solicitado.

Se a VM estiver usando a política de acesso Just-In-Time, você precisará solicitar acesso antes que possa se conectar à VM. Para obter mais informações sobre a política Just-In-Time, confira Gerenciar o acesso à máquina virtual usando a política Just-In-Time.

Próximas etapas