Comment me connecter à mon instance Amazon EC2 si j'ai perdu ma paire de clés SSH après son lancement initial ?

Dernière mise à jour : 01/02/2021

Je souhaite me connecter à mon instance Amazon Elastic Compute Cloud (Amazon EC2), mais j'ai perdu la paire de clés SSH. Comment me connecter à l'instance?

Résolution

Avertissement : avant d'entamer la procédure, prenez note des points suivants :

  • Cette procédure nécessite l'arrêt et le démarrage de votre instance EC2. Sachez que les données des volumes de stockage d'instance seront perdues. Pour plus d'informations, consultez Détermination du type de périphérique racine de votre instance. Assurez-vous de sauvegarder toutes les données que vous souhaitez conserver sur le volume de stockage d'instance.
  • Le fait d'arrêter et de redémarrer l'instance modifie l'adresse IP publique de votre instance. Lorsque vous acheminez du trafic externe vers votre instance, il est recommandé d'utiliser une adresse IP Elastic plutôt qu'une adresse IP publique.

Méthode 1 : Saisie des données utilisateur

1.    Créez une paire de clés.

2.    Si vous créez la clé privée dans la console Amazon EC2, récupérez la clé publique de la paire de clés.

3.    Ouvrez la console Amazon EC2.

4.    Arrêtez votre instance.

5.    Sélectionnez Actions, Instance settings (Paramètres de l'instance), puis choisissez Edit user data (Modifier les données utilisateur).

6.    Copiez le script suivant dans la boîte de dialogue Edit user data (Modifier les données utilisateur) :

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
  - name: username
    ssh-authorized-keys: 
    - PublicKeypair

Remplacez username par votre nom d'utilisateur, tel que ec2-user. Vous pouvez entrer le nom d'utilisateur par défaut ou un nom d'utilisateur personnalisé, si un nom a déjà été défini pour l'instance. Pour obtenir la liste des noms d'utilisateur par défaut, consultez Prérequis généraux pour se connecter à votre instance.

Remplacez PublicKeypair par la clé publique récupérée à l'étape 2. Veillez à saisir la totalité de la clé publique, en commençant par ssh-rsa.

7.    Choisissez Save (Enregistrer).

8.    Démarrez l'instance.

9.    Une fois la phase cloud-init terminée, vérifiez que la clé publique a été remplacée.

Important : étant donné que le script contient une paire de clés, supprimez le script du champ Données utilisateur.

10.    Arrêtez votre instance.

11.    Choisissez Actions et Instance Settings (Paramètres de l'instance),puis View/Change User Data (Afficher/Changer les données utilisateur).

12.    Supprimez tout le texte de la boîte de dialogue View/Change User Data (Afficher/Changer les données utilisateur), puis sélectionnez Save (Enregistrer).

13.    Démarrez l'instance.

Méthode 2 : Utilisation d'AWS Systems Manager

Si l'instance inaccessible se trouve dans AWS Systems Manager en tant qu'instance gérée, vous pouvez utiliser le document AWSSupport-ResetAccess pour récupérer votre paire de clés perdue. AWSSupportResetAccess génère et ajoute automatiquement une nouvelle paire de clés SSH (Publique/Privée) à l'aide de l'outil EC2Rescue for Linux sur l'instance EC2 spécifiée.

La nouvelle clé privée SSH de votre instance est chiffrée et enregistrée dans l'AWS Systems Manager Parameter Store. Le nom du paramètre est /ec2rl/openssh/instance_id/key. Créez un fichier .pem avec la valeur de ce paramètre comme contenu et utilisez-le pour vous connecter à votre instance inaccessible.

Remarque : le flux de travail d'automatisation crée une Amazon Machine Image (AMI) de sauvegarde avec mot de passe. La nouvelle AMI n'est pas automatiquement supprimée et reste dans votre compte.

Pour localiser ces AMI :

1.    Ouvrez la console Amazon EC2, puis choisissez les AMI.

2.    Saisissez l'ID d'exécution d'automatisation dans le champ de recherche.

Méthode 3 : Utiliser Amazon EC2 Instance Connect

Si votre instance est Amazon Linux 2 2 0 20190618 ou version ultérieure, vous pouvez utiliser l'instance EC2 Connect pour vous connecter à l'instance.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?