Como posso usar um único par de chaves SSH em todas as regiões da AWS?

2 minuto de leitura
0

Quero usar o mesmo par de chaves SSH para acessar minhas instâncias do Amazon Elastic Compute Cloud (Amazon EC2) em todas as minhas regiões da AWS. Como faço isso?

Descrição breve

Para usar um único par de chaves SSH para todas as suas regiões da AWS, primeiro gere uma chave SSH pública a partir de uma chave SSH privada. Em seguida, importe a chave para cada uma das suas regiões da AWS.

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Resolução

Se você ainda não tiver um, crie um par de chaves SSH.

Linux

1.    Gerar um arquivo de chave SSH pública (.pub) a partir do arquivo de chave SSH privada (.pem):

$ ssh-keygen -y -f MyKeyPair.pem > $HOME/.ssh/id_rsa_MyKeyPair.pub

Observação: Substitua MyKeyPair.pem pelo nome do seu arquivo .pem privado. Certifique-se de estar trabalhando em um shell bash e de configurar a CLI da AWS com um usuário que tenha acesso válido.

2.    Execute o comando a seguir para definir AWS_REGIONS:

$ AWS_REGIONS="$(aws ec2 describe-regions --query 'Regions[].RegionName' --output text)"

Observação: Se você estiver usando um shell ZSH, habilite a divisão de palavras para que o comando for loop repita cada nome de região corretamente. Use os seguintes comandos para ativar a divisão de palavras:

$ setopt shwordsplit

3.    Execute o comando a seguir para importar a chave SSH pública para as regiões:

$ for each_region in ${AWS_REGIONS} ; do aws ec2 import-key-pair --key-name MyKeyPair --public-key-material fileb://$HOME/.ssh/id_rsa_MyKeyPair.pub --region $each_region ; done

Windows

1.    Gerar um arquivo de chave SSH pública (.pub) a partir do arquivo de chave SSH privada (.pem):

Abra o PuTTYgen.

Escolha Carregar para carregar seu arquivo de chave privada.

Escolha Salvar chave pública.

2.    Importe a chave SSH pública para as regiões desejadas da AWS executando os seguintes comandos:

$PubFile = Get-Content .\MyKeyPair.pub -raw
$Key = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($PubFile))
foreach ($Region in (Get-AWSRegion).Region) {Import-EC2KeyPair -KeyName MyKeyPair -PublicKeyMaterial $Key -Region $Region}

Observação: Substitua MyKeypair.pub pelo nome do arquivo SSH público.


Informações relacionadas

Referência de comandos da AWS CLI - import-key-pair

Endpoints de serviços da AWS

Import-EC2KeyPair Cmdlet

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos