Etapas rápidas: Criar e usar um par de chaves SSH pública e privada para VMs Linux no AzureQuick steps: Create and use an SSH public-private key pair for Linux VMs in Azure

Com um par de chaves SSH (secure shell), você pode criar VMs (máquinas virtuais) no Azure que usam chaves SSH para autenticação, eliminando a necessidade de senhas para entrar.With a secure shell (SSH) key pair, you can create virtual machines (VMs) in Azure that use SSH keys for authentication, eliminating the need for passwords to sign in. Este artigo mostra como gerar e usar rapidamente um par de arquivos de chaves SSH pública e privada para VMs Linux.This article shows you how to quickly generate and use an SSH public-private key file pair for Linux VMs. É possível concluir essas etapas com o Azure Cloud Shell, um host do macOS ou Linux, o Subsistema do Windows para Linux e outras ferramentas compatíveis com OpenSSH.You can complete these steps with the Azure Cloud Shell, a macOS or Linux host, the Windows Subsystem for Linux, and other tools that support OpenSSH.

Observação

As VMs criadas usando chaves SSH são por padrão configuradas com senhas desabilitadas, o que aumenta muito a dificuldade de ataques de adivinhação de força bruta.VMs created using SSH keys are by default configured with passwords disabled, which greatly increases the difficulty of brute-force guessing attacks.

Para obter mais informações e exemplos, confira Etapas detalhadas para criar pares de chaves SSH.For more background and examples, see Detailed steps to create SSH key pairs.

Para ver outras maneiras de gerar e usar chaves SSH em um computador Windows, consulte Como usar chaves SSH com o Windows no Azure.For additional ways to generate and use SSH keys on a Windows computer, see How to use SSH keys with Windows on Azure.

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.

Criar um par de chaves SSHCreate an SSH key pair

Use o comando ssh-keygen para gerar arquivos de chave SSH pública e privada.Use the ssh-keygen command to generate SSH public and private key files. Por padrão, esses arquivos são criados no diretório ~/.ssh.By default, these files are created in the ~/.ssh directory. Você pode especificar um local diferente e uma senha opcional (frase secreta) para acessar o arquivo de chave privada.You can specify a different location, and an optional password (passphrase) to access the private key file. Se um par de chaves SSH com o mesmo nome existir no local especificado, esses arquivos serão substituídos.If an SSH key pair with the same name exists in the given location, those files are overwritten.

O comando a seguir cria um par de chaves SSH usando a criptografia RSA e o tamanho de bit 2048:The following command creates an SSH key pair using RSA encryption and a bit length of 2048:

ssh-keygen -t rsa -b 2048

Ao usar a CLI do Azure para criar a VM com o comando az vm create, opcionalmente, você pode gerar arquivos de chave SSH pública e privada executando a opção --generate-ssh-keys.If you use the Azure CLI to create your VM with the az vm create command, you can optionally generate SSH public and private key files using the --generate-ssh-keys option. Os arquivos de chave são armazenados no diretório ~/.ssh, a menos que você especifique outro local com a opção --ssh-dest-key-path.The key files are stored in the ~/.ssh directory unless specified otherwise with the --ssh-dest-key-path option. A opção --generate-ssh-keys não substituirá os arquivos de chave existentes e retornará um erro.The --generate-ssh-keys option will not overwrite existing key files, instead returning an error. No comando a seguir, substitua VMname e RGname pelos seus próprios valores:In the following command, replace VMname and RGname with your own values:

az vm create --name VMname --resource-group RGname --generate-ssh-keys 

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 use chaves SSH para autenticação, especifique sua chave pública SSH ao criar a VM usando o portal do Azure, a CLI do Azure, os modelos do Azure Resource Manager ou outros métodos:To create a Linux VM that uses SSH keys for authentication, specify your SSH public key when creating the VM using the Azure portal, Azure CLI, Azure Resource Manager templates, or other methods:

Se você não estiver familiarizado com o formato de uma chave SSH pública, exiba sua chave pública com o seguinte comando cat, substituindo ~/.ssh/id_rsa.pub pelo caminho e o nome de arquivo do seu próprio arquivo de chave pública, se necessário:If you're not familiar with the format of an SSH public key, you can display your public key with the following cat command, replacing ~/.ssh/id_rsa.pub with the path and filename of your own public key file if needed:

cat ~/.ssh/id_rsa.pub

Um valor de chave pública típico se parece com este exemplo:A typical public key value looks like this example:

ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname

Se você copiar e colar o conteúdo do arquivo de chave pública a ser usado no portal do Azure ou em um modelo do Resource Manager, não copie nenhum espaço em branco à direita.If you copy and paste the contents of the public key file to use in the Azure portal or a Resource Manager template, make sure you don't copy any trailing whitespace. Para copiar uma chave pública no macOS, é possível redirecionar o arquivo de chave pública para pbcopy.To copy a public key in macOS, you can pipe the public key file to pbcopy. Como no Linux, é possível redirecionar o arquivo de chave pública para programas como o xclip.Similarly in Linux, you can pipe the public key file to programs such as xclip.

A chave pública colocada em sua VM do Linux no Azure é armazenada, por padrão, em ~/.ssh/id_rsa.pub, a menos que tenha especificado um local diferente ao criar o par de chaves.The public key that you place on your Linux VM in Azure is by default stored in ~/.ssh/id_rsa.pub, unless you specified a different location when you created the key pair. Para usar a CLI do Azure 2.0 para criar sua VM com uma chave pública existente, especifique o valor e, opcionalmente, o local dessa chave pública usando o comando az vm create a opção --ssh-key-value.To use the Azure CLI 2.0 to create your VM with an existing public key, specify the value and optionally the location of this public key using the az vm create command with the --ssh-key-value option. No comando a seguir, substitua VMname, RGname e keyFile pelos seus próprios valores:In the following command, replace VMname, RGname, and keyFile with your own values:

az vm create --name VMname --resource-group RGname --ssh-key-value @keyFile

SSH em sua VMSSH into your VM

Com a chave pública implantada em sua VM do Azure e a chave privada em seu sistema local, entre com SSH na VM usando o endereço IP ou o nome DNS da VM.With the public key deployed on your Azure VM, and the private key on your local system, SSH into your VM using the IP address or DNS name of your VM. No comando a seguir, substitua azureuser e myvm.westus.cloudapp.azure.com pelo nome de usuário administrador e o nome de domínio totalmente qualificado (ou o endereço IP):In the following command, replace azureuser and myvm.westus.cloudapp.azure.com with the administrator user name and the fully qualified domain name (or IP address):

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

Se você tiver especificado uma frase secreta quando criou o par de chaves, insira-a quando solicitado durante o processo de logon.If you specified a passphrase when you created your key pair, enter that passphrase when prompted during the login process. A VM é adicionada ao arquivo ~/.ssh/known_hosts e você não precisará se conectar novamente até que a chave pública na VM do Azure seja alterada ou o nome do servidor seja removido de ~/.ssh/known_hosts.The VM is added to your ~/.ssh/known_hosts file, and you won't be asked to connect again until either the public key on your Azure VM changes or the server name is removed from ~/.ssh/known_hosts.

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