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

Este artigo descreve maneiras de gerar e usar chaves SSH (secure shell) em um computador Windows para criar e conectar-se a uma VM (máquina virtual) do Linux no Azure.This article describes ways to generate and use secure shell (SSH) keys on a Windows computer to create and connect to a Linux virtual machine (VM) in Azure. Para usar as chaves SSH de um cliente Linux ou macOS, consulte as diretrizes rápidas ou detalhadas.To use SSH keys from a Linux or macOS client, see the quick or detailed guidance.

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

O SSH é um protocolo de conexão criptografado que permite credenciais seguras em conexões não protegidas.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, usar senhas com conexões SSH ainda deixa a VM vulnerável a ataques de força bruta ou à adivinhação de senhas.Although SSH itself provides an encrypted connection, using passwords with SSH connections still leaves the VM vulnerable to brute-force attacks or guessing of passwords. Um método mais seguro e preferencial de se conectar a uma VM usando SSH é usar um par de chaves públicas e privadas, também conhecidas como chaves SSH.A more secure and preferred method of connecting to a VM using SSH is by using a public-private key pair, also known as SSH keys.

  • A chave pública é colocada na VM Linux ou em qualquer outro serviço que você queira usar com criptografia de chave pública.The public key is placed on your Linux VM, or any other service that you wish to use with public-key cryptography.

  • 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ê usa um cliente SSH para se conectar à sua VM do Linux (que tem a chave pública), a VM remota testa o cliente para garantir que ele tenha a chave privada.When you use an SSH client to connect to your Linux VM (which has the public key), the remote VM tests the client to make sure it possesses the 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 da sua organização, você pode reutilizar um único par de chaves públicas e privadas para acessar vários serviços e VMs do Azure.Depending on your organization's security policies, you can reuse a single public-private key pair to access multiple Azure VMs and services. Não é preciso um par de chaves separado para cada VM ou serviço que você deseja acessar.You do not need a separate pair of keys for each VM or service you wish to access.

Sua chave pública pode ser compartilhada com qualquer pessoa, mas apenas você (ou sua infraestrutura de segurança local) possui sua chave privada.Your public key can be shared with anyone, but only you (or your local security infrastructure) should possess 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.

Pacotes do Windows e clientes SSHWindows packages and SSH clients

Você se conecta às VMs Linux e as gerencia no Azure usando um cliente SSH.You connect to and manage Linux VMs in Azure using an SSH client. Computadores que executam o Linux ou macOS geralmente têm um pacote de comandos SSH para gerar e gerenciar chaves SSH e estabelecer conexões SSH.Computers running Linux or macOS usually have a suite of SSH commands to generate and manage SSH keys and to make SSH connections.

Computadores Windows nem sempre têm comandos SSH equivalentes instalados.Windows computers do not always have comparable SSH commands installed. Versões recentes do Windows 10 fornecem comandos do cliente OpenSSH para criar e gerenciar chaves SSH e fazer conexões SSH de um prompt de comando.Recent versions of Windows 10 provide OpenSSH client commands to create and manage SSH keys and make SSH connections from a command prompt. Versões recentes do Windows 10 também incluem o Windows Subsystem para Linux para executar e acessar utilitários como um cliente SSH de forma nativa dentro de um shell Bash.Recent Windows 10 versions also include the Windows Subsystem for Linux to run and access utilities such as an SSH client natively within a Bash shell.

Outros clientes SSH comuns do Windows que podem ser instalados localmente estão incluídos nos seguintes pacotes:Other common Windows SSH clients you can install locally are included in the following packages:

Também é possível usar os utilitários SSH disponíveis no Bash no Azure Cloud Shell.You can also use the SSH utilities available in Bash in the Azure Cloud Shell.

Criar um par de chaves SSHCreate an SSH key pair

As seguintes seções descrevem duas opções para criar um par de chaves SSH no Windows.The following sections describe two options to create an SSH key pair on Windows. É possível usar um comando shell (ssh-keygen) ou uma ferramenta de GUI (PuTTYgen).You can use a shell command (ssh-keygen) or a GUI tool (PuTTYgen).

Criar chaves SSH com ssh-keygenCreate SSH keys with ssh-keygen

Se você executar um shell de comando no Windows que ofereça suporte a ferramentas de cliente SSH (ou use o Shell de Nuvem do Azure), crie um par de chaves SSH usando o comando ssh-keygen.If you run a command shell on Windows that supports SSH client tools (or you use Azure Cloud Shell), create an SSH key pair using the ssh-keygen command. Digite o comando a seguir e responda aos prompts.Type the following command, and answer the prompts. Se um par de chaves SSH existir no local escolhido, esses arquivos serão substituídos.If an SSH key pair exists in the chosen location, those files are overwritten.

ssh-keygen -t rsa -b 2048

Para obter mais informações, confira as etapas rápidas ou detalhadas para criar chaves SSH usando ssh-keygen.For more background and information, see the quick or detailed steps to create SSH keys using ssh-keygen.

Criar chaves SSH com PuttyGenCreate SSH keys with PuTTYgen

Se você preferir usar uma ferramenta baseada em GUI para criar chaves SSH, use o gerador de chaves PuttyGen, incluído no pacote de download do Putty.If you prefer to use a GUI-based tool to create SSH keys, you can use the PuTTYgen key generator, included with the PuTTY download package.

Para criar um par de chaves SSH RSA com o PuttyGen:To create an SSH RSA key pair with PuTTYgen:

  1. Inicie o PuttyGen.Start PuTTYgen.

  2. Clique em Gerar.Click Generate. Por padrão, o PuttyGen gera uma chave SSH-2 RSA de 2048 bits.By default PuTTYgen generates a 2048-bit SSH-2 RSA key.

  3. Mova o mouse na área em branco para fornecer a aleatoriedade para a chave.Move the mouse around in the blank area to provide randomness for the key.

  4. Depois que a chave pública for gerada, opcionalmente, insira e confirme uma frase secreta.After the public key is generated, optionally enter and confirm a passphrase. Será solicitado que você insira a frase secreta ao autenticar-se na VM com sua chave SSH privada.You will be prompted for the passphrase when you authenticate to the VM with your private SSH key. Sem uma frase secreta, se um indivíduo obtiver a chave privada, ele poderá entrar em qualquer VM ou serviço que use essa chave.Without a passphrase, if someone obtains your private key, they can sign in to any VM or service that uses that key. É recomendável criar uma frase secreta.We recommend you create a passphrase. No entanto, se você esquecer a senha, não é possível recuperá-la.However, if you forget the passphrase, there is no way to recover it.

  5. A chave pública é exibida na parte superior da janela.The public key is displayed at the top of the window. É possível copiar toda esta chave pública e, em seguida, colá-la no portal do Azure ou em um modelo do Azure Resource Manager quando você cria uma VM Linux.You can copy this entire public key and then paste it into the Azure portal or an Azure Resource Manager template when you create a Linux VM. Também é possível selecionar Salvar chave pública para salvar uma cópia no computador:You can also select Save public key to save a copy to your computer:

    Salvar o arquivo de chave pública PuTTY

  6. Opcionalmente, para salvar a chave privada no formato de chave privada do PuTTy (arquivo .ppk), clique em Salvar chave privada.Optionally, to save the private key in PuTTy private key format (.ppk file), select Save private key. Será necessário ter o arquivo .ppk posteriormente para usar o PuTTY para realizar uma conexão SSH com a VM.You will need the .ppk file later to use PuTTY to make an SSH connection to the VM.

    Salvar o arquivo de chave privada do PuTTY

    Se desejar salvar a chave privada no formato OpenSSH, o formato de chave privada usado por muitos clientes SSH, selecione Conversões > Exportar chave OpenSSH.If you want to save the private key in the OpenSSH format, the private key format used by many SSH clients, select Conversions > Export OpenSSH key.

Fornecer uma chave pública SSH ao implantar uma VMProvide an SSH public key when deploying a VM

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 Portal do Azure ou outros métodos.To create a Linux VM that uses SSH keys for authentication, provide your SSH public key when creating the VM using the Azure portal or other methods.

O exemplo a seguir mostra como você pode copiar e colar essa chave pública no portal do Azure ao criar uma VM Linux.The following example shows how you would copy and paste this public key into the Azure portal when you create a Linux VM. Normalmente, a chave pública é armazenada no diretório ~/.ssh/authorized_key em sua nova VM.The public key is typically then stored in the ~/.ssh/authorized_key directory on your new VM.

Usar chave pública quando você cria uma VM no portal do Azure

Conectar-se à sua VMConnect to your VM

Uma maneira de criar uma conexão SSH do Windows para a VM Linux é usar um cliente SSH.One way to make an SSH connection to your Linux VM from Windows is to use an SSH client. Este será o método preferencial se você tiver um cliente SSH instalado no seu sistema Windows ou se usar ferramentas SSH no Bash no Azure Cloud Shell.This is the preferred method if you have an SSH client installed on your Windows system, or if you use the SSH tools in Bash in Azure Cloud Shell. Se você preferir uma ferramenta baseada em GUI, conecte-se com o PuTTY.If you prefer a GUI-based tool, you can connect with PuTTY.

Usar um cliente SSHUse an SSH client

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 myvm.westus.cloudapp.azure.com no comando a seguir pelo nome de usuário administrador e o nome de domínio totalmente qualificado (ou endereço IP):Replace azureuser and myvm.westus.cloudapp.azure.com in the following command with the administrator user name and the fully qualified domain name (or IP address):

ssh azureuser@myvm.westus.cloudapp.azure.com

Se você tiver configurado uma frase secreta ao criar o par de chaves, insira-a quando solicitado durante o processo de entrada.If you configured a passphrase when you created your key pair, enter the passphrase when prompted during the sign-in process.

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.

Conectar com o PuTTYConnect with PuTTY

Se você tiver instalado o pacote de download do PuTTY e gerado anteriormente um arquivo .ppk (chave privada PuTTY), será possível conectar-se a uma VM Linux com o PuTTY.If you installed the PuTTY download package and previously generated a PuTTY private key (.ppk) file, you can connect to a Linux VM with PuTTY.

  1. Inicie o PuTTy.Start PuTTy.

  2. Preencha o nome do host ou o endereço IP da sua VM no portal do Azure:Fill in the host name or IP address of your VM from the Azure portal:

    Abrir nova conexão PuTTY

  3. Selecione a categoria Conexão > SSH > Autenticação.Select the Connection > SSH > Auth category. Procure e selecione a chave privada do PuTTY (arquivo .ppk):Browse to and select your PuTTY private key (.ppk file):

    Selecionar a chave privada do PuTTY para autenticação

  4. Clique em Abrir para se conectar à VM.Click Open to connect to your VM.

Próximas etapasNext steps