Si lors de la crĂ©ation de l'instance Linux dans AWS, une paire de clĂ©s (KeyPair) n'a pas Ă©tĂ© créée pour y accĂ©der via SSH ou qu'elles sont perdues, alors un certain nombre d'opĂ©rations doivent ĂȘtre effectuĂ©es pour accĂ©der Ă la machine. Vous ne pouvez pas ajouter de clĂ©s Ă une instance dĂ©jĂ en cours d'exĂ©cution via la console AWS. Il existe trois façons de restaurer l'accĂšs SSH Ă une instance.
Le moyen le plus simple consiste Ă
configurer la clé à l'aide du mécanisme cloud-init (merci pour l'astuce de
yusman ). Mais cela ne fonctionne pas si les droits sur le répertoire
/home
sont endommagés ou si la distribution ne prend pas en charge les directives cloud-init.
La deuxiĂšme façon consiste Ă
créer une image (Amazon Machine Image) à partir d'une instance existante, puis à lancer une nouvelle instance basée sur celle-ci, mais avec une clé. Ainsi, la machine existante sera effectivement clonée avec la seule différence qu'au dernier stade, il est possible de créer de nouvelles clés. La création d'une image peut prendre beaucoup de temps pour une instance avec de grands disques, et vous devrez configurer à nouveau tous les services liés à cette machine. Par conséquent, cette méthode prendra dans la plupart des cas plus de temps.
Les documents officiels d'Amazon décrivent
une autre façon . Il vous permet de restaurer l'accÚs et de minimiser le coût des services de reconfiguration (par rapport à la deuxiÚme méthode), qui sont liés à une instance à laquelle l'accÚs est perdu. L'article en donne une description pas à pas.
Attention! Cette mĂ©thode ne fonctionne que pour les instances qui utilisent le stockage en mode bloc (Amazon Elastic Block Store) en tant que pĂ©riphĂ©rique racine, et ne fonctionne pas pour le stockage d'instance local (Amazon EC2 Instance Store).Pour savoir quel type de pĂ©riphĂ©rique racine vous utilisez, ouvrez la console Amazon EC2, accĂ©dez Ă
Instances , sélectionnez une instance et vérifiez la valeur du paramÚtre
Type de périphérique racine dans le panneau avec des informations détaillées.
Si votre machine est
équipée d'EBS , cette méthode vous convient.
Ătape 1. PrĂ©paration
Vous devez d'abord enregistrer certaines informations afin de ne pas vous laisser distraire et de ne pas passer Ă d'autres Ă©crans (d'autant plus que cela sera trĂšs gĂȘnant). Toutes les donnĂ©es se trouvent dans les informations dĂ©taillĂ©es de l'instance (vous savez dĂ©jĂ comment vous y rendre). Enregistrez les paramĂštres suivants:
- ID d'instance
- ID AMI
- ID EBS
- Appareil racine
- Zone de disponibilité
Pour une instance exécutée dans
VPC , enregistrez la valeur
ID VPC .
Pour
EC2-classic : si une adresse IP élastique (
Elastic IP ) est créée pour une instance, sa valeur doit Ă©galement ĂȘtre enregistrĂ©e.
Image cliquablePour obtenir l'identifiant de stockage en bloc (
ID EBS ), cliquez sur le nom du
périphérique racine .
Ătape 2. CrĂ©ation d'une instance temporaire
L'Ă©tape suivante consiste Ă crĂ©er une instance avec laquelle vous restaurerez les clĂ©s sur l'instance d'origine. Vous pouvez ignorer cette Ă©tape si vous avez une autre instance en cours d'exĂ©cution situĂ©e dans la mĂȘme zone (zone de disponibilitĂ©) que celle restaurĂ©e, et en mĂȘme temps qu'elle a Ă©tĂ© créée en utilisant la mĂȘme AMI ou la version du systĂšme d'exploitation sur elle vous permettra de connecter le disque Ă partir de l'instance d'origine et copiez-y les clĂ©s SSH. S'il n'y a pas une telle instance, procĂ©dez comme suit:
- Accédez à la console EC2 (sur le tableau de bord ou dans le menu Instances ) et cliquez sur Lancer l'instance
- Sur la page de sélection AMI ( Choose an Amazon Machine Image ), sélectionnez celle qui a été utilisée pour créer l'instance d'origine (vous l'avez notée à la premiÚre étape - ID AMI ). Si, pour une raison quelconque, cette AMI n'est pas disponible, vous pouvez créer une image à partir de l'instance d'origine et l'utiliser, ou sélectionner le type d'AMI auquel vous pouvez connecter le disque racine de l'instance restaurée
- Sur la page Choisir un type d'instance , sélectionnez le type le moins cher disponible.
- Sur la page Configurer les dĂ©tails de l'instance , spĂ©cifiez la mĂȘme zone de disponibilitĂ© que dans notre instance. S'il s'exĂ©cute dans VPC, sĂ©lectionnez le mĂȘme VPC dans l'Ă©lĂ©ment RĂ©seau et spĂ©cifiez le sous-rĂ©seau dans cette zone.
Cependant, il n'est pas nécessaire de modifier les paramÚtres des interfaces réseau.
- Aucune modification n'est requise sur la page Ajouter un stockage .
- Sur la page des balises ( Ajouter des balises ), ajoutez un nom pour l'instance temporaire afin qu'elle soit facile Ă identifier et ne perdez pas de temps Ă rĂ©concilier l' ID d'instance et l' ID EBS , car sur les pages oĂč vous devrez dĂ©terminer l'instance ou le volume avec lequel vous travaillez, dans le titre cette valeur apparaĂźtra.
- Cliquez sur Review and Launch puis sur Launch
- La derniÚre étape consiste à sélectionner une paire de clés existante ou à en créer une nouvelle. Téléchargez le fichier clé (pem) et n'oubliez pas de sauvegarder afin que toutes les opérations ne soient pas à refaire.
- AprÚs avoir enregistré le fichier, lancez l'instance avec le bouton Lancer les instances
Ătape 3. Connexion du disque racine de la machine restaurĂ©e Ă une instance temporaire
Vous devez d'abord dĂ©connecter le disque de l'instance d'origine et le connecter Ă une instance temporaire. Comme il s'agit du disque racine, l'instance d'origine devra ĂȘtre arrĂȘtĂ©e avant de le dĂ©connecter.
- AccĂ©dez Ă la console EC2 dans la section Instances et sĂ©lectionnez l'instance d'origine (elle peut ĂȘtre dĂ©terminĂ©e par l' ID d'instance enregistrĂ© prĂ©cĂ©demment ou par un nom diffĂ©rent de celui que vous avez spĂ©cifiĂ© lors de la crĂ©ation de l'instance temporaire).
Ensuite dans le menu Actions - Instance State - Stop .
Attention! Lorsque l'instance s'arrĂȘte, toutes les donnĂ©es du stockage local (Amazon EC2 Instance Store) sont effacĂ©es. Si vous avez des donnĂ©es sur de tels volumes, veillez Ă leur sĂ©curitĂ© en les transfĂ©rant vers un stockage permanent, si nĂ©cessaire.
- Une fois l'instance arrĂȘtĂ©e, accĂ©dez Ă la section Elastic Block Store - Volumes et sĂ©lectionnez le volume racine de l'instance d'origine. Il peut ĂȘtre dĂ©terminĂ© par l' ID de volume stockĂ© ou basĂ© sur les informations de la colonne Informations sur la piĂšce jointe , qui contient le nom de l'instance.
Suivant dans le menu Actions - Détacher le volume - Connectez ce volume à une instance temporaire. Pour ce faire, sélectionnez-le à nouveau, puis dans le menu Actions - Attacher un volume et dans la boßte de dialogue qui apparaßt, spécifiez votre instance temporaire.
Cliquez ensuite sur Attacher . Si l'instance d'origine a été créée via l' AMI AWS Marketplace et que la section contient des codes AWS Marketplace, vous recevrez une erreur indiquant qu'il est impossible de connecter la section avec des codes à l'instance de travail.
Dans ce cas, arrĂȘtez notre instance temporaire et rĂ©pĂ©tez les Ă©tapes pour connecter le volume racine de l'instance d'origine Ă l'instance temporaire. La deuxiĂšme tentative devrait rĂ©ussir.
- Vous devriez maintenant voir que les deux disques sont connectés à une instance temporaire.
- Si vous avez arrĂȘtĂ© l'instance, exĂ©cutez-la:
- Accédez à la section Instances de la barre de navigation.
- Choisissez une instance temporaire
- Ensuite dans le menu Actions - Ătat de l'instance - DĂ©marrer .
Ătape 4. PrĂ©paration des clĂ©s pour la connexion Ă l'instance via SSH
Les utilisateurs de Linux n'ont pas besoin de générer de clés supplémentaires. Vous devez seulement donner des autorisations de lecture à ce fichier:
chmod 400 my-keypair.pem
Préparation des clés si vous exécutez WindowsPour vous connecter à une machine Linux, nous utiliserons l'utilitaire PuTTY, donc si vous ne l'avez pas installé,
téléchargez- le. Pour vous connecter via SSH en l'utilisant, vous aurez besoin d'une
clé ppk , tandis qu'avec AWS, la clé au format
pem a été
enregistrée . Afin d'obtenir la clé au format souhaité, procédez comme suit:
- Ouvrez PuTTYgen (installé avec PuTTY)
- Sélectionnez 2048 bits dans les paramÚtres RSA
- Téléchargez la clé pem enregistrée en cliquant sur Charger (Charger un fichier de clé privée existant)
- Spécifiez la phrase de passe (phrase de passe clé ) et confirmez-la ( confirmez la phrase de passe ). Ce n'est pas nécessaire, mais plus sûr. La seule différence est que lors de la connexion à l'aide de cette touche, il vous sera toujours demandé de saisir cette phrase pour confirmer l'entrée
- Enregistrez le fichier avec le nom que vous avez spécifié lors de la création de la paire de clés ( KeyPair ) lors de la création de l'instance temporaire (le nom coïncide avec le nom de la clé pem )
La clĂ© est prĂȘte.
Ătape 5. Connectez-vous Ă une instance temporaire via SSH
Connectez-vous sur le port 22 à l'aide de la clé. Le nom d'utilisateur dépend de l'AMI utilisé pour créer l'instance. Vous l'avez écrit au tout début. Les noms d'utilisateur suivants sont possibles:
- Amazon Linux 2 ou Amazon Linux AMI - ec2-user
- Centos AMI - centos
- Debian AMI - admin ou root
- Fedora AMI - ec2-user ou fedora
- RHEL AMI - utilisateur ec2 ou root
- SUSE AMI - utilisateur ec2 ou root
- Ubuntu AMI - Ubuntu
- Pour le reste, si les noms ec2-user et root ne fonctionnent pas, contactez votre fournisseur AMI
Le nom d'hĂŽte auquel vous souhaitez vous connecter est
user@aws-host.amazon.com , oĂč
user est le nom décrit ci-dessus, et
aws-host.amazon.com est l'adresse IP de votre instance, qui peut ĂȘtre trouvĂ©e sur l'onglet d'informations dĂ©taillĂ©es (Ă partir de lĂ , vous avez enregistrĂ© les paramĂštres au tout dĂ©but). Le paramĂštre est appelĂ©
IPv4 Public IP . Veuillez noter que si vous n'utilisez pas
Elastic IP , chaque fois que vous démarrez l'instance, elle aura une nouvelle adresse IP.
Instructions de connexion pour les utilisateurs de Windows Ătape 6. Copie des clĂ©s d'une instance temporaire vers l'original
Montez le volume que vous avez connecté à l'instance temporaire pour pouvoir accéder à son systÚme de fichiers.
Monter la partitionPar exemple, si le nom du lecteur est
/dev/sdf
(il peut apparaßtre différemment sur votre instance), utilisez les opérations suivantes pour monter le volume dans
/mnt/tempvol
:
Copiez les clés SSH de l'instance temporaire vers la partition montée.
Attention! Utilisez le nom d'utilisateur fourni sur la ligne de commande. Cela est nĂ©cessaire, car malgrĂ© le fait que vous ayez rĂ©ussi Ă vous connecter avec un nom d'utilisateur standard, qui dĂ©pend du systĂšme d'exploitation (dĂ©crit Ă l'Ă©tape 5), dans l'AMI d'AWS Marketplace, il peut ĂȘtre diffĂ©rent aprĂšs la connexion. Par exemple, pour AMI WordPress Certified by Bitnami, lors de la connexion via SSH, la connexion standard pour Ubuntu est ubuntu
. Cependant, le nom d'utilisateur aprĂšs la connexion est bitnami
Copier les clésPar exemple, si le nom d'utilisateur est
ubuntu
, utilisez la commande suivante pour copier:
[user ~]$ cp .ssh/authorized_keys /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
Si vous n'ĂȘtes pas autorisĂ© Ă modifier les fichiers dans
/mnt/tempvol
, copiez les fichiers Ă l'aide de
sudo
et vérifiez les droits pour vous assurer que vous pouvez accéder à l'instance d'origine:
- Vérifiez les autorisations des fichiers:
[user ~]$ sudo ls -l /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
total 4
-rw------- 1 200 500 392 Aug 15 00:06 authorized_keys
Dans l'exemple, 200 est l'ID utilisateur et 500 est l'ID de groupe.
- Redémarrez la commande de copie de clé à l'aide de
sudo
:
[user ~]$ sudo cp .ssh/authorized_keys /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
- Vérifiez si les autorisations sur le fichier ont changé:
[user ~]$ sudo ls -l /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
Si les droits ont changé, restaurez-les:
[user ~]$ sudo chown 200 : 500 /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
Démontez la section:
[user ~]$ sudo umount /mnt/tempvol
Ătape 7. DĂ©marrage de l'instance avec un accĂšs restaurĂ© via SSH
- Dans la console EC2, sélectionnez le lecteur que vous avez connecté au temporaire et dans le menu: Actions - Détacher le volume . Attendez que l'état du disque soit disponible (vous pouvez utiliser le bouton Actualiser pour mettre à jour les informations).
N'oubliez pas de pré-terminer l'instance si la section contient des codes AWS Marketplace.
- Pour le mĂȘme lecteur, accĂ©dez au menu Actions - Attacher le volume
- Sélectionnez l'instance d'origine et spécifiez le nom du disque racine que vous avez enregistré au tout début.
Image cliquable
Cliquez sur Attacher
- Exécuter l'instance
- Pour EC2-classic : si Elastic IP a été configuré pour l'instance d'origine, réassociez-la à celle-ci:
- Accédez à la section Elastic IP de la barre de navigation.
- Sélectionnez l'adresse IP élastique que vous avez notée au tout début
- Actions suivantes - Adresse associée
- Sélectionnez l' ID d' instance d'origine et cliquez sur Associer
Ătape 8. ContrĂŽle d'accĂšs
Connectez-vous à l'instance d'accÚs restaurée à l'aide de la clé générée.
Si le nom de la nouvelle paire de clĂ©s est diffĂ©rent du prĂ©cĂ©dent, assurez-vous que vous vous connectez Ă l'aide de la nouvelle clĂ© privĂ©e.Ătape 9. L'Ă©tape finale
Si vous avez créé une nouvelle instance temporaire afin d'effectuer toutes les opĂ©rations et que vous n'en avez pas utilisĂ© une existante, arrĂȘtez-la si vous n'en avez plus besoin:
- Accédez à la section Instances de la barre de navigation.
- Choisissez une instance temporaire
- Suivant dans le menu Actions - Ătat de l'instance - Terminer
De cette façon, vous avez récupéré l'accÚs à l'instance Linux Amazon EC2.