Criar um par de chaves para sua instância do Amazon EC2 - Amazon Elastic Compute Cloud

Criar um par de chaves para sua instância do Amazon EC2

É possível usar o Amazon EC2 para criar seus pares de chaves ou usar uma ferramenta de terceiros para criar seus pares de chaves e depois importá-los para o Amazon EC2.

O Amazon EC2 é compatível com as chaves SSH-2 RSA de 2.048 bits para instâncias do Linux e do Windows. Além disso, o Amazon EC2 é compatível com chaves ED25519 para instâncias do Linux.

Para obter as instruções sobre como se conectar à instância depois de criar um par de chaves, consulte Conectar-se à instância do Linux usando SSH e Conectar-se à sua instância baseada no Windows usando RDP.

Criar um par de chaves usando o Amazon EC2

Quando você criar um par de chaves usando o Amazon EC2, a chave pública será armazenada no Amazon EC2 e você armazenará a chave privada.

É possível criar até 5.000 pares de chaves por região. Para solicitar um aumento de cota, crie um caso de suporte. Para obter mais informações, consulte Criação de um caso de suporte no Guia do usuário do AWS Support.

Console
Para criar um par de chaves usando o Amazon EC2
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em Rede e segurança, selecione Pares de chaves.

  3. Escolha Create key pair (Criar par de chaves).

  4. Em Name (Nome), insira um nome descritivo para o par de chaves. O Amazon EC2 associa a chave pública ao nome especificado como o nome da chave. Um nome de chave pode incluir até 255 caracteres ASCII. Não pode incluir espaços no início nem no final.

  5. Selecione um tipo de par de chaves apropriado para seu sistema operacional:

    (Instâncias do Linux) Em Tipo de par de chaves, escolha RSA ou ED25519.

    (Instâncias do Windows) Em Tipo de par de chaves, escolha RSA. As chaves ED25519 não são compatíveis com as instâncias do Windows.

  6. Para Formato de arquivo de chave privada, escolha o formato no qual salvar a chave privada. Para salvar a chave privada em um formato que possa ser usado com o OpenSSH, escolha pem. Para salvar a chave privada em um formato que possa ser usado com o PuTTY, escolha ppk.

  7. Para adicionar uma etiqueta à chave pública, escolha Adicionar etiqueta, e insira a chave e o valor da etiqueta. Repita esse procedimento para cada tag.

  8. Escolha Create key pair (Criar par de chaves).

  9. O arquivo de chave privada é baixado automaticamente pelo navegador. O nome do arquivo base é o nome especificado como o nome do par de chaves, e a extensão do nome do arquivo é determinada pelo formato do arquivo escolhido. Salve o arquivo de chave privada em um lugar seguro.

    Importante

    Esta é a única chance de você salvar o arquivo de chave privada.

  10. Se você planeja usar um cliente SSH em um computador macOS ou Linux para se conectar à instância do Linux, use o seguinte comando para definir as permissões do seu arquivo de chave privada para que apenas você possa lê-lo.

    chmod 400 key-pair-name.pem

    Se você não definir essas permissões, não poderá conectar-se à instância usando esse par de chaves. Para ter mais informações, consulte Erro: arquivo de chave privada desprotegido.

AWS CLI
Para criar um par de chaves usando o Amazon EC2
  1. Use o comando create-key-pair da seguinte forma para gerar um par de chaves e salvar a chave privada em um arquivo .pem.

    Para o --key-name, especifique um nome para a chave pública. O nome pode incluir até 255 caracteres ASCII.

    Para o --key-type, especifique rsa ou ed25519. Se você não incluir o parâmetro --key-type, qualquer chave rsa é criada por padrão. Observe que não há suporte para chaves ED25519 para instâncias do Windows.

    Para o --key-format, especifique pem ou ppk. Se você não incluir o parâmetro --key-format, um arquivo pem será criado por padrão.

    --query "KeyMaterial" imprime o material da chave privada para a saída.

    --output text > my-key-pair.pem salva o material da chave privada em um arquivo com a extensão especificada. A extensão pode ser .pem ou .ppk. A chave privada pode ter um nome diferente do nome da chave pública mas, para facilitar o uso, use o mesmo nome.

    aws ec2 create-key-pair \ --key-name my-key-pair \ --key-type rsa \ --key-format pem \ --query "KeyMaterial" \ --output text > my-key-pair.pem
  2. Se você planeja usar um cliente SSH em um computador macOS ou Linux para se conectar à instância do Linux, use o seguinte comando para definir as permissões do seu arquivo de chave privada para que apenas você possa lê-lo.

    chmod 400 key-pair-name.pem

    Se você não definir essas permissões, não poderá conectar-se à instância usando esse par de chaves. Para ter mais informações, consulte Erro: arquivo de chave privada desprotegido.

PowerShell
Para criar um par de chaves usando o Amazon EC2

Use o comando New-EC2KeyPair do AWS Tools for Windows PowerShell da seguinte forma para gerar a chave e salvá-la em um arquivo .pem ou .ppk.

Para o -KeyName, especifique um nome para a chave pública. O nome pode incluir até 255 caracteres ASCII.

Para o -KeyType, especifique rsa ou ed25519. Se você não incluir o parâmetro -KeyType, qualquer chave rsa é criada por padrão. Observe que não há suporte para chaves ED25519 para instâncias do Windows.

Para o -KeyFormat, especifique pem ou ppk. Se você não incluir o parâmetro -KeyFormat, um arquivo pem será criado por padrão.

KeyMaterial imprime o material da chave privada para a saída.

Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem salva o material da chave privada em um arquivo com a extensão especificada. A extensão pode ser .pem ou .ppk. A chave privada pode ter um nome diferente do nome da chave pública mas, para facilitar o uso, use o mesmo nome.

PS C:\> (New-EC2KeyPair -KeyName "my-key-pair" -KeyType "rsa" -KeyFormat "pem").KeyMaterial | Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem

Criar um par de chaves usando o AWS CloudFormation

Quando você cria um novo par de chaves usando o AWS CloudFormation, a chave privada é salva no AWS Systems Manager Parameter Store. O nome do parâmetro tem o seguinte formato:

/ec2/keypair/key_pair_id

Para obter mais informações, consulte o Armazenamento de parâmetros do AWS Systems Manager, no Guia do usuário do AWS Systems Manager.

Para criar um par de chaves usando o AWS CloudFormation
  1. Especifique o recurso AWS::EC2::KeyPair em seu modelo.

    Resources: NewKeyPair: Type: 'AWS::EC2::KeyPair' Properties: KeyName: new-key-pair
  2. Use o comando describe-key-pairs da seguinte forma para obter o ID do par de chaves.

    aws ec2 describe-key-pairs --filters Name=key-name,Values=new-key-pair --query KeyPairs[*].KeyPairId --output text

    O seguinte é um exemplo de saída.

    key-05abb699beEXAMPLE
  3. Use o comando get-parameter da seguinte forma para obter o parâmetro para sua chave e salvar o material da chave em um arquivo .pem.

    aws ssm get-parameter --name /ec2/keypair/key-05abb699beEXAMPLE --with-decryption --query Parameter.Value --output text > new-key-pair.pem
Permissões obrigatórias do IAM

Para habilitar o AWS CloudFormation a gerenciar parâmetros da Parameter Store em seu nome, o perfil do IAM assumido pelo AWS CloudFormation ou seu usuário devem ter as permissões a seguir:

  • ssm:PutParameter: concede permissão para criar um parâmetro para o material da chave privada.

  • ssm:DeleteParameter: concede permissão para excluir o parâmetro que armazenou o material da chave privada. Essa permissão é necessária independentemente de o par de chaves ter sido importado ou criado pelo AWS CloudFormation.

Quando o AWS CloudFormation exclui um par de chaves criado ou importado por uma pilha, ele realiza uma verificação de permissões para determinar se você tem permissão para excluir os parâmetros, embora o AWS CloudFormation só crie um parâmetro quando cria um par de chaves, não quando importa um par de chaves. O AWS CloudFormation testa a permissão necessária usando um nome de parâmetro fabricado que não corresponde a nenhum parâmetro em sua conta. Portanto, você pode ver um nome de parâmetro fabricado na mensagem de erro AccessDeniedException.

Criar um par de chaves usando uma ferramenta de terceiros e importe a chave pública para o Amazon EC2

Em vez de usar o Amazon EC2 para criar um par de chaves, você pode criar um par de chaves RSA ou ED25519 usando uma ferramenta de terceiros e, então, importar a chave pública para o Amazon EC2.

Requisitos para pares de chaves
  • Tipos compatíveis:

    • (Linux e Windows) RSA

    • (Somente Linux) ED25519

      nota

      As chaves ED25519 não são compatíveis com as instâncias do Windows.

    • O Amazon EC2 não aceita chaves DSA.

  • Formatos com suporte

    • Formato de chave pública OpenSSH (para Linux, o formato em ~/.ssh/authorized_keys)

    • (Somente Linux) Se você se conectar usando SSH enquanto usa a API do EC2 Instance Connect, o formato do SSH2 também será compatível.

    • O formato de arquivo de chave privada SSH deve ser PEM ou PPK

    • (Apenas RSA) Formato DER codificado em Base64

    • (Apenas RSA) Formato de arquivo de chave pública SSH, conforme especificado em RFC 4716

  • Tamanhos compatíveis:

    • 1024, 2048 e 4096.

    • (Somente Linux) Se você se conectar usando SSH enquanto usa a API do EC2 Instance Connect, os tamanhos compatíveis serão 2048 e 4096.

Para criar um par de chaves usando uma ferramenta de terceiros
  1. Gere um par de chaves com uma ferramenta de terceiros de sua escolha. Por exemplo, é possível usar ssh-keygen (uma ferramenta fornecida com a instalação padrão de OpenSSH). Como alternativa, Java, Ruby, Python e muitas outras linguagens de programação fornecem bibliotecas padrão que você pode usar para criar um par de chaves.

    Importante

    A chave privada deve estar no formato PEM ou PPK. Por exemplo, use ssh-keygen -m PEM para gerar a chave OpenSSH no formato PEM.

  2. Salve a chave pública em um arquivo local. Por exemplo, ~/.ssh/my-key-pair.pub (Linux, macOS) ou C:\keys\my-key-pair.pub (Windows). A extensão do nome de arquivo para esse arquivo não é importante.

  3. Salve a chave privada em um arquivo local que tenha a extensão .pem ou .ppk. Por exemplo, ~/.ssh/my-key-pair.pem ou ~/.ssh/my-key-pair.ppk (Linux, macOS) ou C:\keys\my-key-pair.pem ou C:\keys\my-key-pair.ppk (Windows). A extensão do arquivo é importante porque, dependendo da ferramenta usada para se conectar à instância, você precisará de um formato de arquivo específico. O OpenSSH requer um arquivo .pem, enquanto o PuTTY requer um arquivo .ppk.

    Importante

    Salve o arquivo de chave privada em um lugar seguro. Você precisará fornecer o nome da chave pública ao iniciar uma instância e a chave privada correspondente sempre que se conectar à instância.

Depois de criar o par de chaves, use um dos seguintes métodos para importar o par de chaves para Amazon EC2.

Console
Para importar a chave pública para o Amazon EC2
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Key Pairs (Pares de chaves).

  3. Selecione Import key pair (Importar par de chaves).

  4. Em Name (Nome), insira um nome descritivo para a chave pública. O nome pode incluir até 255 caracteres ASCII. Não pode incluir espaços no início nem no final.

    nota

    Quando você se conecta à instância pelo console do EC2, o console sugere esse nome para o arquivo de chave privada.

  5. Escolha Browse (Procurar) para navegar e selecionar a chave pública ou cole o conteúdo da chave pública no campo Public key contents (Conteúdo da chave pública).

  6. Selecione Import key pair (Importar par de chaves).

  7. Verifique se a chave pública que você importou aparece na lista de pares de chaves.

AWS CLI
Para importar a chave pública para o Amazon EC2

Use o comando import-key-pair da AWS CLI.

Como verificar se o par de chaves foi importado com êxito

Use o comando describe-key-pairs da AWS CLI.

PowerShell
Para importar a chave pública para o Amazon EC2

Use o comando Import-EC2KeyPair da AWS Tools for Windows PowerShell.

Como verificar se o par de chaves foi importado com êxito

Use o comando Get-EC2KeyPair da AWS Tools for Windows PowerShell.