Comment utiliser une seule paire de clés SSH pour toutes mes régions AWS ?

Dernière mise à jour : 16/06/2020

Je souhaite utiliser la même paire de clés SSH pour accéder à mes instances Amazon Elastic Compute Cloud (Amazon EC2) dans toutes mes régions AWS. Comment procéder ?

Brève description

Pour utiliser une seule paire de clés SSH pour toutes vos régions AWS, commencez par générer une clé SSH publique à partir d'une clé SSH privée. Importez ensuite la clé dans chacune de vos régions AWS.

Résolution

Si vous n'en avez pas déjà une, créez une paire de clés SSH.

Linux

1.    Générez un fichier de clé SSH publique (.pub) à partir du fichier de clé SSH privée (.pem) :

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

Remarque : remplacez MyKeyPair.pem par le nom de votre fichier .pem privé. Assurez-vous que vous travaillez sur un shell Bash et que l'interface de ligne de commande AWS est configurée avec un utilisateur disposant d'un accès valide.

2.    Exécutez la commande suivante pour définir AWS_REGIONS:

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

3.    Exécutez la commande suivante pour importer la clé SSH publique dans les régions :

$ 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.    Générez un fichier de clé SSH publique (.pub) à partir du fichier de clé SSH privée (.pem) :

Ouvrez PuTTYgen.

Choisissez Load (Charger) pour charger votre fichier de clé privée.

Choisissez Save public key (Enregistrer la clé publique).

2.    Importez la clé SSH publique dans les régions AWS souhaitées en exécutant les commandes suivantes :

$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}

Remarque : remplacez MyKeyPair.pub par votre nom de fichier SSH public.