Share via


Como utilizar chaves SSH com o Windows no Azure

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

Este artigo destina-se a utilizadores do Windows que pretendam criar e utilizar chaves de shell segura (SSH) para se ligarem a máquinas virtuais (VMs) do Linux no Azure. Também pode gerar e armazenar chaves SSH no portal do Azure a utilizar ao criar VMs no portal.

Para utilizar chaves SSH de um cliente Linux ou macOS, veja os passos rápidos. Para obter uma descrição geral mais detalhada do SSH, veja Passos detalhados: Criar e gerir chaves SSH para autenticação numa VM do Linux no Azure.

Descrição geral do SSH e chaves

O SSH é um protocolo de ligação encriptado que permite inícios de sessão seguros através de ligações não seguras. O SSH é o protocolo de ligação predefinido para VMs do Linux alojadas no Azure. Embora o próprio SSH forneça uma ligação encriptada, a utilização de palavras-passe com SSH ainda deixa a VM vulnerável a ataques de força bruta. Recomendamos que se ligue a uma VM através de SSH através de um par de chaves público-privado, também conhecido como chaves SSH.

O par de chaves público-privado é como a fechadura na 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 na VM do Linux quando cria a VM.

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

Quando se liga à VM do Linux, a VM testa o cliente SSH para se certificar de que tem a chave privada correta. Se o cliente tiver a chave privada, é-lhe concedido acesso à VM.

Dependendo das políticas de segurança da sua organização, pode reutilizar um único par de chaves para aceder a várias VMs e serviços do Azure. 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 o utilizador (ou a sua infraestrutura de segurança local) deve ter acesso à sua chave privada.

Formatos de chave SSH suportados

Atualmente, o Azure suporta pares de chaves públicas-privadas RSA do protocolo SSH 2 (SSH-2) com um comprimento mínimo de 2048 bits. Outros formatos-chave, como ED25519 e ECDSA, não são suportados.

Clientes SSH

As versões recentes do Windows 10 incluem comandos de cliente OpenSSH para criar e utilizar chaves SSH e fazer ligações SSH a partir do PowerShell ou de uma linha de comandos.

Também pode utilizar o Bash na Cloud Shell do Azure para ligar à VM. Pode utilizar Cloud Shell num browser, a partir do portal do Azure ou como terminal no Visual Studio Code com a extensão conta do Azure.

Também pode instalar o Subsistema Windows para Linux para ligar à VM através de SSH e utilizar outras ferramentas nativas do Linux numa shell do Bash.

Criar um par de chaves SSH

A forma mais fácil de criar e gerir as chaves SSH é utilizar o portal para criá-las e armazená-las para reutilização.

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 no computador local com o ssh-keygen comando do PowerShell ou uma linha de comandos, escreva o seguinte comando:

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

Introduza um nome de ficheiro ou utilize a predefinição apresentada em parênteses (por exemplo C:\Users\username/.ssh/id_rsa, ). Introduza uma frase de acesso para o ficheiro ou deixe a frase de acesso em branco se não quiser utilizar uma frase de acesso.

Criar uma VM com a sua chave

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

Com a CLI do Azure, especifique o caminho e o nome do ficheiro para a chave pública com 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, utilize New-AzVM e adicione a chave SSH à configuração da VM ao utilizar". Por exemplo, veja Início Rápido: Criar uma máquina virtual do Linux no Azure com o PowerShell.

Se efetuar muitas implementações com o portal, poderá querer carregar a sua chave pública para o Azure, onde pode ser facilmente selecionada ao criar uma VM a partir do portal. Para obter mais informações, veja Carregar uma chave SSH.

Ligar à VM

Com a chave pública implementada na VM do Azure e a chave privada no seu sistema local, SSH na VM com o endereço IP ou o nome DNS da sua VM. Substitua azureuser e 10.111.12.123 no seguinte comando pelo nome de utilizador do administrador, o endereço IP (ou nome de domínio completamente qualificado) e o caminho para a sua chave privada:

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

Se nunca se ligou a esta VM antes, ser-lhe-á pedido para verificar a impressão digital dos anfitriões. É tentador aceitar a impressão digital apresentada, no entanto, isto expõe-no a uma possível pessoa no ataque do meio. Deve sempre validar a impressão digital dos anfitriões. Só tem de o fazer na primeira vez que se ligar a partir de um cliente. Para obter a impressão digital do anfitrião através do portal, utilize o Comando Executar com o seguinte comando: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Captura de ecrã a mostrar a utilização do Comando Executar para validar a impressão digital do anfitrião.

Para executar o comando com a CLI, utilize o az vm run-command invoke comando .

Se tiver configurado uma frase de acesso quando criou o par de chaves, introduza a frase de acesso quando lhe for pedido.

Se a VM estiver a utilizar a política de acesso just-in-time, terá de pedir acesso antes de poder ligar à VM. Para obter mais informações sobre a política just-in-time, veja Gerir o acesso a máquinas virtuais com a política just-in-time.

Passos seguintes