Como usar chaves SSH com o Windows no AzureHow to use SSH keys with Windows on Azure

Este artigo é para usuários do Windows que desejam criar e usar chaves SSH ( Secure Shell ) para se conectar a VMS (máquinas virtuais) do Linux no Azure.This article is for Windows users who want to create and use secure shell (SSH) keys to connect to Linux virtual machines (VMs) in Azure. Você também pode gerar e armazenar chaves SSH no portal do Azure para usar ao criar VMs no Portal.You can also generate and store SSH keys in the Azure portal to use when creating VMs in the portal.

Para usar chaves SSH de um cliente Linux ou macOS, consulte a rápida.To use SSH keys from a Linux or macOS client, see the quick. 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.For a more detailed overview of SSH, see Detailed steps: Create and manage SSH keys for authentication to a Linux VM in Azure.

Visão geral do SSH e das chavesOverview of SSH and keys

O SSH é um protocolo de conexão criptografado que permite entradas seguras em conexões não seguras.SSH is an encrypted connection protocol that allows secure sign-ins over unsecured connections. SSH é o protocolo de conexão padrão para as VMs Linux hospedadas no Azure.SSH is the default connection protocol for Linux VMs hosted in Azure. Embora o SSH em si forneça uma conexão criptografada, o uso de senhas com o SSH ainda deixa a VM vulnerável a ataques de força bruta.Although SSH itself provides an encrypted connection, using passwords with SSH still leaves the VM vulnerable to brute-force attacks. É recomendável conectar-se a uma VM por SSH usando um par de chaves pública-privada, também conhecido como chaves SSH.We recommend connecting to a VM over SSH using a public-private key pair, also known as SSH keys.

O par de chaves pública-privada é como o bloqueio na sua porta de frente.The public-private key pair is like the lock on your front door. O bloqueio é exposto ao público, qualquer pessoa com a chave correta pode abrir a porta.The lock is exposed to the public, anyone with the right key can open the door. A chave é privadae só é fornecida às pessoas confiáveis, pois podem ser usadas para desbloquear a porta.The key is private, and only given to people you trust because it can be used to unlock the door.

  • A chave pública é colocada em sua VM Linux quando você cria a VM.The public key is placed on your Linux VM when you create the VM.

  • A chave privada permanece em seu sistema local.The private key remains on your local system. Proteja essa chave privada.Protect this private key. Não a compartilhe.Do not share it.

Quando você se conecta à VM do Linux, a VM testa o cliente SSH para verificar se ele tem a chave privada correta.When you connect to your Linux VM, the VM tests the SSH client to make sure it has the correct private key. Se o cliente tiver a chave privada, será concedido o acesso à VM.If the client has the private key, it's granted access to the VM.

Dependendo das políticas de segurança de sua organização, você pode reutilizar um único par de chaves para acessar várias VMs e serviços do Azure.Depending on your organization's security policies, you can reuse a single key pair to access multiple Azure VMs and services. Você não precisa de um par separado de chaves para cada VM.You do not need a separate pair of keys for each 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.Your public key can be shared with anyone, but only you (or your local security infrastructure) should have access to your private key.

Formatos de chave SSH compatíveisSupported SSH key formats

No momento, o Azure é compatível com o protocolo SSH 2 RSA (SSH-2) de pares de chaves pública e privada com tamanho mínimo de 2048 bits.Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. Outros formatos de chave como ED25519 e ECDSA não são compatíveis.Other key formats such as ED25519 and ECDSA are not supported.

Clientes SSHSSH clients

As versões recentes do Windows 10 incluem comandos de cliente do OpenSSH para criar e usar chaves SSH e fazer conexões SSH do PowerShell ou de um prompt de comando.Recent versions of Windows 10 include OpenSSH client commands to create and use SSH keys and make SSH connections from PowerShell or a command prompt. Essa é a maneira mais fácil de criar uma conexão SSH para sua VM Linux, de um computador Windows.This is the easiest way to create an SSH connection to your Linux VM, from a Windows computer.

Você também pode usar o bash no Azure cloud Shell para se conectar à sua VM.You can also use Bash in the Azure Cloud Shell to connect to your VM. Você pode usar Cloud Shell em um navegador da Web, na portal do Azureou como um terminal no Visual Studio Code usando a extensão de conta do Azure.You can use Cloud Shell in a web browser, from the Azure portal, or as a terminal in Visual Studio Code using the Azure Account extension.

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 bash.You can also install the Windows Subsystem for Linux to connect to your VM over SSH and use other native Linux tools within a Bash shell.

Criar um par de chaves SSHCreate an SSH key pair

Crie um par de chaves SSH usando o ssh-keygen comando.Create an SSH key pair using the ssh-keygen command. Insira um nome de arquivo ou use o padrão mostrado entre parênteses (por exemplo C:\Users\username/.ssh/id_rsa ).Enter a filename, or use the default shown in parenthesis (for example 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.Enter a passphrase for the file, or leave the passphrase blank if you do not want to use a passphrase.

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

Criar uma VM usando sua chaveCreate a VM using your key

Para criar uma VM do Linux que usa chaves SSH para autenticação, forneça sua chave pública SSH ao criar a VM.To create a Linux VM that uses SSH keys for authentication, provide your SSH public key when creating the VM.

Usando o 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.Using the Azure CLI, you specify the path and filename for the public key using az vm create and the --ssh-key-value parameter.

az vm create \
   --resource-group myResourceGroup \
   --name myVM \
   --image UbuntuLTS\
   --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 '.With PowerShell, use New-AzVM and add the SSH key to the VM configuration using`. Para obter um exemplo, consulte início rápido: criar uma máquina virtual Linux no Azure com o PowerShell.For an example, see Quickstart: Create a Linux virtual machine in Azure with 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.If you do a lot of deployments using the portal, you might want to upload your public key to Azure, where it can be easily selected when creating a VM from the portal. Para obter mais informações, consulte carregar uma chave SSH.For more information, see Upload an SSH key.

Conectar-se à sua VMConnect to your 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.With the public key deployed on your Azure VM, and the private key on your local system, SSH to your VM using the IP address or DNS name of your VM. Substitua azureuser e 10.111.12.123 no comando a seguir pelo nome de usuário administrador, o endereço IP (ou nome de domínio totalmente qualificado) e o caminho para a chave privada:Replace azureuser and 10.111.12.123 in the following command with the administrator user name, the IP address (or fully qualified domain name), and the path to your private key:

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

Se você tiver configurado uma frase secreta quando criou o par de chaves, insira a frase secreta quando solicitado.If you configured a passphrase when you created your key pair, enter the passphrase when prompted.

Se a VM estiver usando a política de acesso Just-In-Time, você precisará solicitar acesso antes que possa se conectar à VM.If the VM is using the just-in-time access policy, you need to request access before you can connect to the 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.For more information about the just-in-time policy, see Manage virtual machine access using the just in time policy.

Próximas etapasNext steps