Partilhar via


Como usar chaves SSH com o Windows no Azure

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

Este artigo é para usuários do Windows que desejam criar e usar chaves de shell seguro (SSH) para se conectar a máquinas virtuais (VMs) 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 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 Linux no Azure.

Visão geral de SSH e chaves

SSH é um protocolo de conexão criptografado que permite entradas seguras em conexões não seguras. SSH é o protocolo de conexão padrão para VMs Linux hospedadas no Azure. Embora o próprio SSH forneça uma conexão criptografada, o uso de senhas com 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.

O par de chaves público-privado é como a fechadura da sua porta da frente. A fechadura é exposta ao público, qualquer pessoa com a chave certa pode abrir a porta. A chave é privada e só é dada a pessoas em quem confia porque pode ser usada para destrancar a porta.

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

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

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

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.

Clientes SSH

As versões recentes do Windows 10 incluem comandos de cliente OpenSSH para criar e usar 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 Azure ou como um terminal no Visual Studio Code usando a extensão de Conta do Azure.

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

Criar um par de chaves SSH

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

Você também pode 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 em seu computador local usando o ssh-keygen comando 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 senha para o arquivo ou deixe a senha em branco se não quiser usar uma senha.

Criar uma VM usando sua chave

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

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

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'. Para obter um exemplo, consulte Guia de início rápido: criar uma máquina virtual 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 a partir do portal. Para obter mais informações, consulte Carregar uma chave SSH.

Ligar à sua VM

Com a chave pública implantada em sua VM do Azure e a chave privada em seu sistema local, SSH para sua VM usando o endereço IP ou nome DNS de sua 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 sua chave privada:

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

Se você nunca se conectou a essa VM antes, você será solicitado a verificar a impressão digital dos hosts. É tentador aceitar a impressão digital apresentada, no entanto, isso expõe você a uma possível pessoa no meio do ataque. Deve sempre validar a impressão digital dos anfitriões. Você só precisa fazer isso na primeira vez que se conectar a partir de um cliente. Para obter a impressão digital do host através do portal, use o comando Executar com o seguinte comando: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

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

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

Se você configurou uma senha quando criou seu par de chaves, insira a senha quando solicitado.

Se a VM estiver usando a política de acesso just-in-time, você precisará solicitar acesso antes de se conectar à VM. Para obter mais informações sobre a política just-in-time, consulte Gerenciar o acesso à máquina virtual usando a política just in time.

Próximos passos