Vous ne pouvez pas appliquer une paire de clés à une instance en cours d'exécution. Vous pouvez uniquement utiliser la nouvelle paire de clés pour lancer une nouvelle instance.
Pour la récupération, si c'est une AMI de démarrage EBS, vous pouvez l'arrêter, faire un instantané du volume. Créer un nouveau volume basé sur celui-ci. Et être capable de l'utiliser à nouveau pour démarrer l'ancienne instance, créer une nouvelle image, ou récupérer des données.
Bien que les données du stockage éphémère soient perdues.
En raison de la popularité de cette question et réponse, j'ai voulu capturer les informations dans le lien que Rodney a posté sur son commentaire.
Le mérite revient à Eric Hammond pour cette information .
Correction des fichiers sur le volume EBS racine d'une instance EC2
Vous pouvez examiner et modifier des fichiers sur le volume EBS racine d'une instance EC2 même si vous vous trouvez dans une situation considérée comme désastreuse, par exemple :
- Vous avez perdu votre clé ssh ou oublié votre mot de passe
- Vous avez fait une erreur en modifiant le fichier /etc/sudoers et vous ne pouvez plus obtenir l'accès Root avec sudo pour la corriger.
- Votre instance en cours d'exécution est bloquée pour une raison quelconque et ne peut pas être contactée. contactée, et ne parvient pas à démarrer correctement
- Vous devez récupérer des fichiers de l'instance mais vous ne pouvez pas y accéder.
Sur un ordinateur physique posé sur votre bureau, il vous suffirait de démarrer le système à l'aide d'un CD ou d'une clé USB, de monter le disque dur, de vérifier et de réparer les fichiers, puis de redémarrer l'ordinateur pour être de nouveau opérationnel.
Une instance EC2 distante, cependant, semble distante et inaccessible lorsque vous vous trouvez dans l'une de ces situations. Heureusement, AWS nous offre la puissance et la flexibilité nécessaires pour pouvoir récupérer un tel système, à condition d'utiliser des instances de démarrage EBS et non des instances de stockage.
L'approche sur EC2 est quelque peu similaire à la solution physique, mais nous allons déplacer et monter le "disque dur" défectueux (volume Root EBS) sur une instance différente, le réparer, puis le déplacer à nouveau.
Dans certaines situations, il peut être plus simple de démarrer une nouvelle instance EC2 et de jeter la mauvaise, mais si vous voulez vraiment réparer vos fichiers, voici l'approche qui a fonctionné pour beaucoup :
Configuration
Identifiez l'instance (A) et le volume d'origine qui contient le volume EBS racine cassé avec les fichiers que vous voulez visualiser et modifier.
instance_a=i-XXXXXXXX
volume=$(ec2-describe-instances $instance_a |
egrep '^BLOCKDEVICE./dev/sda1' | cut -f3)
Identifiez la deuxième instance EC2 (B) que vous utiliserez pour réparer les fichiers sur le volume EBS d'origine. Cette instance doit fonctionner dans la même zone de disponibilité que l'instance A afin que le volume EBS puisse lui être attaché. Si vous n'avez pas d'instance en cours d'exécution, démarrez-en une temporaire.
instance_b=i-YYYYYYYY
Arrêtez l'instance A en panne (en attendant qu'elle s'arrête complètement), détachez le volume Root EBS de l'instance (en attendant qu'il soit détaché), puis attachez le volume à l'instance B sur un périphérique inutilisé.
ec2-stop-instances $instance_a
ec2-detach-volume $volume
ec2-attach-volume --instance $instance_b --device /dev/sdj $volume
ssh à l'instance B et montez le volume afin de pouvoir accéder à son système de fichiers.
ssh ...instance b...
sudo mkdir -p 000 /vol-a
sudo mount /dev/sdj /vol-a
Réparez-le
À ce stade, l'ensemble de votre système de fichiers racine de l'instance A est disponible pour être visualisé et édité sous /vol-a sur l'instance B. Par exemple, vous pourriez vouloir.. :
- Mettez les clés ssh correctes dans /vol-a/home/ubuntu/.ssh/authorized_keys
- Modifier et corriger /vol-a/etc/sudoers
- Rechercher les messages d'erreur dans /vol-a/var/log/syslog
- Copier les fichiers importants de /vol-a/
Note : Les uids sur les deux instances peuvent ne pas être identiques, donc faites attention si vous créez, éditez ou copiez des fichiers qui appartiennent à des utilisateurs non-Root. Par exemple, votre utilisateur mysql sur l'instance A peut avoir le même UID que votre utilisateur postfix sur l'instance B, ce qui pourrait causer des problèmes si vous chownez des fichiers avec un nom et que vous déplacez ensuite le volume vers A.
Récapitulation
Une fois que vous avez terminé et que vous êtes satisfait des fichiers sous /vol-a, démontez le système de fichiers (toujours sur l'instance-B) :
sudo umount /vol-a
sudo rmdir /vol-a
Maintenant, de retour sur votre système avec ec2-api-tools, continuez à déplacer le volume EBS vers son emplacement sur l'instance A originale et redémarrez l'instance :
ec2-detach-volume $volume
ec2-attach-volume --instance $instance_a --device /dev/sda1 $volume
ec2-start-instances $instance_a
Avec un peu de chance, vous avez résolu le problème, l'instance A s'affiche correctement et vous pouvez accomplir ce que vous aviez prévu à l'origine. Si ce n'est pas le cas, vous devrez peut-être continuer à répéter ces étapes jusqu'à ce que le problème soit résolu.
Remarque : Si une adresse IP Elastic était attribuée à l'instance A lorsque vous l'avez arrêtée, vous devrez la réassocier après l'avoir redémarrée.
Rappelez-vous ! Si votre instance B a été temporairement lancée juste pour ce processus, n'oubliez pas de la terminer maintenant.
0 votes
Avez-vous essayé la solution ici : stackoverflow.com/questions/1454629/ ?
ssh-add
devrait faire ce dont vous avez besoin.0 votes
C'est bien d'apprendre la fonction ssh-add mais cela ne servira à rien car cet utilisateur a créé l'instance en utilisant la paire de clés qu'il a créée. Les instances auxquelles je fais référence ont été créées avec une autre paire de clés à laquelle je n'ai pas accès.
1 votes
Vous feriez mieux de poser cette question sur serverfault.com
5 votes
Vous ne pouvez pas appliquer une paire de clés à une instance en cours d'exécution.
0 votes
" Une fois qu'une instance a été lancée, il n'y a aucun moyen de modifier la paire de clés associée à l'instance au niveau des métadonnées, mais vous pouvez changer la clé ssh que vous utilisez pour vous connecter à l'instance. "
0 votes
Duplicata de : serverfault.com/questions/160951/