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

Date de la dernière mise à jour : 07/10/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?

Solution

Important :

Les méthodes 1, 2 et 3 nécessitent un arrêt et un démarrage de l'instance. Soyez conscient des points suivants :

  • Les données sont perdues lorsque vous arrêtez l'instance si votre instance est basée sur le stockage d'instances ou dispose de volumes de stockage d'instances contenant des données. Pour plus d'informations, consultez la section Déterminer le 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 nouvelle 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.    Choisissez Actions, Paramètres de l'instance, 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 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, Paramètres de l'instance, Modifier les données utilisateur.

12.    Supprimez tout le texte de la boîte de dialogue Edit user data (Modifier les données utilisateur), puis sélectionnez Save (Enregistrer).

13.    Démarrez l'instance.

Méthode 2 : Utilisation d'AWS Systems Manager

Si votre instance est une instance gérée dans AWS Systems Manager, utilisez 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 EC2 Rescue 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.

Méthode 4 : Utiliser EC2 Serial Console

Si vous avez activé EC2 Serial Console pour Linux, vous pouvez l'utiliser pour résoudre les problèmes liés aux types d'instances Nitro pris en charge. La console série permet de résoudre les problèmes de démarrage, ainsi que les problèmes de configuration réseau et SSH. EC2 Serial Console se connecte à votre instance sans qu'aucune connexion réseau ne soit nécessaire. Vous pouvez accéder à EC2 Serial Console à l'aide de la console Amazon EC2 ou d'AWS Command Line Interface (AWS CLI).

Avant d'utiliser EC2 Serial Console, accordez-lui l'accès au niveau du compte. Créez ensuite des stratégies AWS Identity and Access Management (IAM) accordant l'accès à vos utilisateurs IAM. En outre, chaque instance qui utilise la console série doit inclure au moins un utilisateur avec mot de passe. Si votre instance n'est pas accessible et que vous n'avez pas configuré l'accès à Serial Console, suivez les instructions de la méthode 1, 2 ou 3. Pour plus d'informations sur la configuration d'EC2 Serial Console pour Linux, consultez Configurer l'accès à EC2 Serial Console.

Remarque : en cas d'erreurs lors de l'exécution de commandes depuis AWS CLI, assurez-vous d'utiliser la version d'AWS CLI la plus récente.


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


Avez-vous besoin d'aide pour une question technique ou de facturation ?