¿Cómo puedo usar un solo par de claves SSH para todas mis regiones de AWS?

2 minutos de lectura
0

Quiero usar el mismo par de claves SSH para acceder a mis instancias de Amazon Elastic Compute Cloud (Amazon EC2) en todas mis regiones de AWS. ¿Cómo lo hago?

Breve descripción

Para usar un solo par de claves SSH para todas las regiones de AWS, genere primero una clave SSH pública a partir de una clave SSH privada. A continuación, importe la clave a cada una de sus regiones de AWS.

Nota: Si recibe errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Resolución

Si aún no lo tiene, cree un par de claves SSH.

Linux

1.    Genere un archivo de clave SSH pública (.pub) a partir del archivo de clave SSH privada (.pem):

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

**Nota:**Sustituya MyKeyPair.pem por el nombre de su archivo .pem privado. Asegúrese de trabajar en un shell de Bash y de configurar la AWS CLI con un usuario que tenga un acceso válido.

2.    Ejecute el siguiente comando para configurar AWS_REGIONS:

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

Nota: Si utiliza un shell de ZSH, habilite la división de palabras para que el comando for loop repita correctamente el nombre de cada región. Use los siguientes comandos para habilitar la división de palabras:

$ setopt shwordsplit

3.    Ejecute el siguiente comando para importar la clave SSH pública a las regiones:

$ 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.    Genere un archivo de clave SSH pública (.pub) a partir del archivo de clave SSH privada (.pem):

Abra PuTTYgen.

Seleccione Cargar para cargar su archivo de clave privada.

Seleccione Guardar clave pública.

2.    Importe la clave SSH pública a las regiones de AWS deseadas mediante la ejecución de los siguientes 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}

Nota: Sustituya MyKeyPair.pub por el nombre de su archivo SSH público.


Información relacionada

AWS CLI Command Reference - import-key-pair

AWS service endpoints

Import-EC2KeyPair Cmdlet

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años