Changer la paire de clés pour l'instance ec2

408

Comment modifier la paire de clés de mon instance ec2 dans la console de gestion AWS? Je peux arrêter l'instance, je peux créer une nouvelle paire de clés, mais je ne vois aucun lien pour modifier la paire de clés de l'instance.

Michael Chen
la source
1
J'ai suivi les étapes indiquées dans cette vidéo et cela a fonctionné youtube.com/watch?v=OF2AOekW4IE
Jonathan Nolasco Barrientos

Réponses:

492

Cette réponse est utile dans le cas où vous n'avez plus accès SSH au serveur existant (c'est-à-dire que vous avez perdu votre clé privée).

Si vous disposez toujours d'un accès SSH, veuillez utiliser l'une des réponses ci-dessous.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Voici ce que j'ai fait, grâce au blog d'Eric Hammond:

  1. Arrêtez l'instance EC2 en cours d'exécution
  2. Détachez son /dev/xvda1volume (appelons-le volume A) - voir ici
  3. Démarrez une nouvelle instance t1.micro EC2 en utilisant ma nouvelle paire de clés. Assurez-vous de le créer dans le même sous - réseau , sinon vous devrez terminer l'instance et la recréer. - voir ici
  4. Attachez le volume A à la nouvelle micro-instance, comme /dev/xvdf(ou /dev/sdf)
  5. SSH sur la nouvelle micro-instance et montez le volume A sur /mnt/tmp

    $ sudo mount / dev / xvdf1 / mnt / tmp

  6. Copier ~/.ssh/authorized_keysvers/mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Se déconnecter
  8. Mettre fin à la micro-instance
  9. Détachez-en le volume A
  10. Rattachez le volume A à l'instance principale en tant que /dev/xvda
  11. Démarrer l'instance principale
  12. Connectez-vous comme auparavant, en utilisant votre nouveau .pemfichier

C'est ça.

yegor256
la source
6
viens de sauver mon cul, tu es une légende!
Garry Welding
8
mkdir /mnt/tmppuis mount /dev/xvdf /mnt/tmpdevrait faire l'affaire pour # 5. Et n'oubliez pas que l'étape 13. se trouve probablement rm ~/.ssh/known_hostssur les boîtes à partir desquelles vous vous connectez.
brandonscript
21
C'est tellement puant… Tout d'abord, voir la réponse d'Eric Hammond ci-dessous. Deuxième: réponse de Pat Mcb. Ils effectuent en fait la même chose mais sans perdre 1h de votre temps à faire la solution de contournement hilarante. PS. Voir aussi stackoverflow.com/a/24143976/547223
kgadek
3
J'ai écrit ici des instructions vraiment spécifiques qui s'appuient sur cette réponse, mais c'est essentiellement la même idée - gist.github.com/tamoyal/1b7ec4d3871b343d353d . Comme l'a noté @kgadek, c'est un peu sale et prend du temps, mais c'est une excellente option si vous êtes verrouillé hors du serveur sur lequel vous souhaitez modifier la clé et si vous ne voulez pas faire tourner une copie de ce serveur. Cela prend environ 5 à 10 minutes par instance, pas une heure.
Tony
4
Les réponses publiées par @Eric et @Pat sont des solutions pour les personnes qui souhaitent simplement utiliser une paire de clés différente pour leurs instances. Cela n'aide pas un utilisateur qui a en quelque sorte perdu le fichier de paire de clés en premier lieu. Sans détacher le volume et le rattacher à une autre instance, comment pourriez-vous contrôler ce volume? Sans parler de remplacer le .ssh/authorized_keysfichier d' origine .
sanjeev
187

Une fois qu'une instance a été démarré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 modifier la clé ssh que vous utilisez pour vous connecter à l'instance.

Il existe un processus de démarrage sur la plupart des AMI qui télécharge la clé publique ssh et l'installe dans un fichier .ssh / authorized_keys afin que vous puissiez utiliser ssh en tant qu'utilisateur à l'aide de la clé ssh privée correspondante.

Si vous souhaitez modifier la clé ssh que vous utilisez pour accéder à une instance, vous souhaiterez éditer le fichier authorized_keys sur l'instance elle-même et la convertir en votre nouvelle clé publique ssh.

Le fichier authorized_keys se trouve dans le sous-répertoire .ssh du répertoire personnel de l'utilisateur sous lequel vous vous connectez. Selon l'AMI que vous exécutez, il peut s'agir de l'un des éléments suivants:

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

Après avoir modifié un fichier authorized_keys, utilisez toujours un terminal différent pour confirmer que vous êtes en mesure de vous connecter à l'instance avant de vous déconnecter de la session que vous utilisez pour modifier le fichier. Vous ne voulez pas vous tromper et vous exclure complètement de l'instance.

Pendant que vous songez à des paires de clés ssh sur EC2, je vous recommande de télécharger votre propre clé publique ssh sur EC2 au lieu de laisser Amazon générer la paire de clés pour vous.

Voici un article que j'ai écrit à ce sujet:

Téléchargement de clés ssh personnelles sur Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

Cela ne s'appliquerait qu'aux nouvelles instances que vous exécutez.

Eric Hammond
la source
J'ai bêtement fait cette erreur, je veux dire que j'ai édité le fichier authorized_keys et que je me suis déconnecté. Maintenant, ne peut pas revenir en arrière :(. Une suggestion de solution rapide?
aatifh
11
aatifh: Voici un article que j'ai écrit sur comment sortir de cette situation: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond
@EricHammond Cela peut être déplacé mais vous semblez savoir comment tout cela fonctionne ... J'ai configuré une instance EC2 aujourd'hui et reçu le .pemfichier de clé privée sur mon Mac, mais ssh -i key.pemne s'authentifie pas (autorisation refusée (publickey)). Dans la console de gestion EC2, sous Nom de la paire de clés, il ne répertorie rien. C'est alarmant pour moi. Comment puis-je régler cela? Il semble basé sur la console de gestion qu'aucune paire de clés que j'ai configurée n'a été affectée à l'instance!
Steven Lu
1
@StevenLu: Oui, les fils de commentaires ne sont pas le bon endroit pour poser de nouvelles questions. Essayez de créer une nouvelle question sur serverfault.com (plus appropriée pour ce problème que stackoverflow).
Eric Hammond
4
Voici une jolie petite doublure pour ajouter votre clé. Cela ajoute simplement votre clé de publication normale en plus de celle générée par AWS, donc si cela ne fonctionne pas, vous ne vous serez pas verrouillé: stackoverflow.com/a/5654728/193494
Kevin C.
78

Exécutez cette commande après avoir téléchargé votre pem AWS.

ssh-keygen -f YOURKEY.pem -y

Vider ensuite la sortie dans authorized_keys.

Ou copiez le fichier pem sur votre instance AWS et exécutez les commandes suivantes

chmod 600 YOURKEY.pem

et alors

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Pat Mcb
la source
14
Cela ne fonctionne que si vous avez déjà accès au système, non? (comme pas perdu l'ancien fichier .pem).
Daniel
5
Vous pouvez utiliser> au lieu de >> pour remplacer l'utilisateur actuel au lieu de l'ajouter.
Adrian Lopez
Ceci est la réponse correcte et la plus simple. Pas besoin de redémarrer, de créer de nouvelles instances ou de monter des disques. Obtenez simplement le fichier .pem, saisissez-le et ajoutez-le aux hôtes autorisés.
Spanky
j'ai fait ceci ssh-keygen -f YOURKEY.pem -y >> ~ / .ssh / authorized_keys mais sitll ne peut pas accéder à mon ec2 avec la nouvelle clé publique.
manukyanv07
J'ai exécuté cela et ma clé locale n'a pas changé.
Luiz
50

Instruction du support AWS EC2:

  1. Modifier la connexion pem
  2. accédez à votre console EC2
  3. Sous RÉSEAU & SÉCURITÉ, cliquez sur Paire de clés Cliquez sur Créer une paire de clés
  4. Donnez un nom à votre nouvelle paire de clés, enregistrez le fichier .pem. Le nom de la paire de clés sera utilisé pour se connecter à votre instance
  5. Créez une connexion SSH à votre instance et gardez-la ouverte
  6. dans PuttyGen, cliquez sur "Charger" pour charger votre fichier .pem
  7. Gardez le bouton radio SSH-2 RSA coché. Cliquez sur "Enregistrer la clé privée" Vous obtiendrez un avertissement de fenêtre pop-up, cliquez sur "Oui"
  8. cliquez également sur "Enregistrer la clé publique", afin de générer la clé publique. Il s'agit de la clé publique que nous allons copier sur votre instance actuelle
  9. Enregistrez la clé publique avec le nouveau nom de paire de clés et avec l'extension .pub
  10. Ouvrez le contenu de la clé publique dans un bloc-notes
  11. copiez le contenu ci-dessous "Commentaire:" clé-importée-ouverte "et avant" ---- FIN DE LA CLÉ PUBLIQUE SSH2 ----
    Remarque - vous devez copier le contenu sur une seule ligne - supprimer toutes les nouvelles lignes
  12. sur votre instance connectée, ouvrez votre fichier authorized_keys à l'aide de l'outil vi. Exécutez la commande suivante: vi .ssh / authorized_keys vous devriez également voir la clé publique d'origine dans le fichier
  13. déplacez votre curseur sur le fichier à la fin de votre premier contenu de clé publique: tapez "i" pour insérer
  14. sur la nouvelle ligne, tapez "ssh-rsa" et ajoutez un espace avant de coller le contenu de la clé publique, l'espace et le nom du fichier .pem (sans le .pem) Remarque - vous devriez obtenir une ligne avec le même format que la ligne précédente
  15. appuyez sur la touche Échap, puis tapez: wq!

cela sauvera le fichier updated_keys mis à jour

essayez maintenant d'ouvrir une nouvelle session SSH sur votre instance en utilisant votre nouvelle clé de paiement

Lorsque vous avez confirmé que vous pouvez SSH dans l'instance à l'aide de la nouvelle paire de clés, vous pouvez vi .ssh / authorized_key et supprimer l'ancienne clé.

Réponse à la remarque de Shaggie:

Si vous ne parvenez pas à vous connecter à l'instance (par exemple, la clé est corrompue), utilisez la console AWS pour détacher le volume ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) et le rattacher à l'instance de travail, puis changer la clé sur le volume et le rattacher à l'instance précédente.

Elia Weiss
la source
6
Devrait être la meilleure réponse
2
Que faire si l'ancienne clé a été corrompue et que vous ne parvenez pas à vous connecter à l'instance via du mastic car vous n'avez pas l'ancien fichier ppk ???
Shaggie
3
que faire si vous n'avez pas d'accès SSH, d'où ce problème.
Jayden Lawson
3
Jayden Lawson, que faire si vous n'avez pas de connexion Internet?
Elia Weiss
1
Il peut arriver que la paire de clés soit partagée avec une autre personne et doit maintenant changer de paire de clés afin que cette personne ne puisse plus se connecter, ou bien d'autres raisons comme celle-ci,
Harikrishna
38

J'ai remarqué que lorsque géré par Elastic Beanstalk, vous pouvez changer votre paire de clés EC2 active. Sous Elastic Beanstalk> Configuration> Sécurité, choisissez la nouvelle clé dans la liste déroulante Paire de clés EC2 . Vous verrez ce message vous demander si vous êtes sûr:

EC2KeyName: les modifications apportées aux paramètres de l'option EC2KeyName ne prendront pas effet immédiatement. Chacune de vos instances EC2 existantes sera remplacée et vos nouveaux paramètres prendront alors effet.

Mon instance était déjà terminée lorsque je l'ai fait. Il a ensuite démarré, terminé et recommencé. Apparemment, «remplacer» signifie terminer et créer une nouvelle instance. Si vous avez modifié votre volume de démarrage, créez d'abord une AMI, puis spécifiez cette AMI dans le même formulaire Elastic Beanstalk> Configuration> Instances que l' ID AMI personnalisé . Cela met également en garde contre le remplacement des instances EC2.

Après avoir modifié votre paire de clés EC2 et votre ID AMI personnalisé, et après avoir vu des avertissements sur les deux, cliquez sur Enregistrer pour continuer.

N'oubliez pas que l'adresse IP change lorsque l'instance est recréée, vous devrez donc récupérer une nouvelle adresse IP à partir de la console EC2 pour l'utiliser lors de la connexion via SSH.

Mark Berry
la source
1
C'est maintenant sous la section «Sécurité» de la configuration.
Will Demaine
Merci @WillDemaine. N'utilisant pas AWS actuellement, je vais vous croire sur parole et approuver la modification!
Mark Berry
31

J'ai suivi cette approche et, après un certain temps, j'ai réussi à la faire fonctionner. L'absence de commandes réelles a rendu la tâche difficile, mais je l'ai compris. CEPENDANT - une approche beaucoup plus facile a été trouvée et testée peu de temps après:

  1. Enregistrez votre instance en tant qu'AMI (redémarrage ou non, je suggère de redémarrer). Cela ne fonctionnera que si EBS est soutenu.
  2. Ensuite, démarrez simplement une instance à partir de cette AMI et attribuez votre nouveau fichier de clés.
  3. Déplacez votre IP élastique (le cas échéant) vers votre nouvelle instance, et vous avez terminé.
OldGreg
la source
Cela a totalement fonctionné pour moi après avoir accidentellement supprimé ~ / .ssh
morri
J'ai fait de même et cela a fonctionné, maintenant je peux me connecter avec un nouveau pem. Mais je peux toujours me connecter avec l'ancien pem. Alors maintenant, 2 pems sont valides.
Vitaly
Pour info, c'est une méthode GUI rapide et facile de faire tourner un nouveau EC2 avec une clé différente si occupé mais comme @vitaly a trouvé que vous avez l'ancienne clé pem également valide, vous devez aller dans /home/ec2-user/.ssh/authorized_keys et supprimer l'ancienne clé pem du fichier. Merci pour la méthode de changement de clé Pem rapide agréable et facile lorsque vous n'avez pas le temps.
Blu Towers
Ça n'a pas marché pour moi. AWS n'arrêtait pas de dire que le mot de passe n'était pas disponible avec un autre message mentionnant que si l'instance a été créée à partir d'une AMI, elle utilise les informations d'identification de l'image parent.
Brady
15

Si les étapes ci-dessous sont suivies, cela vous fera gagner beaucoup de temps et il ne sera pas nécessaire d'arrêter l'instance en cours d'exécution.

  1. Démarrez une nouvelle instance t1.micro EC2 en utilisant une nouvelle paire de clés. Assurez-vous de le créer dans le même sous - réseau , sinon vous devrez terminer l'instance et la recréer.
  2. SSH vers la nouvelle micro-instance et copiez le contenu de ~ / .ssh / authorized_keys quelque part sur votre ordinateur.
  3. Connectez-vous à l'instance principale avec l' ancienne clé ssh .
  4. Copiez et remplacez le contenu du fichier du point 2 vers ~ / .ssh / authorized_keys
  5. Vous pouvez maintenant vous reconnecter uniquement avec une nouvelle clé. L'ancienne clé ne fonctionnera plus.

C'est ça. Profitez :)

vinay saini
la source
14

Je crois que l'approche la plus simple consiste à:

  1. Créez une image AMI d'une instance existante.
  2. Lancez une nouvelle instance EC2 à l'aide d'une image AMI (créée à l'étape 1) avec une nouvelle paire de clés.
  3. Connectez-vous à la nouvelle instance EC2 avec une nouvelle clé.
Sergey
la source
@ Brady, qu'est-ce qui ne fonctionne pas du tout? faire un instantané? instance de lancement? s'identifier?
Sergey
4
Je ne sais pas si cette modification est récente ou non, mais lorsque vous créez une AMI à partir d'une instance à laquelle une clé est déjà attribuée, vous devez disposer de cette clé pour vous connecter à l'image AMI copiée, indépendamment du fait que vous affectez une paire de clés différente lors de la création.
Brady
Ce n'est pas une solution, car @Brady mentionne que cela ne fonctionne pas.
Greg Sansom
8

Si vous utilisez la plate-forme ElasticBeanstalk, vous pouvez modifier les clés en allant:

  • Panneau élastique Beanstalk
  • Configuration
  • Instances (rouage en haut à droite)
  • Paire de clés EC2

Cela mettra fin à l'instance actuelle et en créera une nouvelle avec les clés / paramètres choisis.

Vaelyr
la source
2
C'est de loin la réponse la plus simple ici, à condition que vous soyez sur ElasticBeanstalk.
Yuval Karmi
2
Attention ! C'est une solution dangereuse. L'AWS réinitialisera également le stockage (c'est-à-dire le disque dur virtuel) attaché à cette instance (!!). Vous devez donc détacher le stockage et, après avoir créé une nouvelle instance, le reconnecter à la place de la nouvelle fournie avec la nouvelle instance. Bien sûr, ce sera mieux si ce n'est pas un volume chiffré (et vous n'avez pas perdu sa clé ..)
JamesC
7

Il y a deux scénarios posés dans cette question: -

1) Vous n'avez pas accès au fichier .pem, c'est pourquoi vous souhaitez en créer un nouveau.

2) Vous avez le. accès au fichier pem avec vous, mais vous souhaitez simplement modifier ou créer un nouveau fichier .pem à des fins de vulnérabilité ou de sécurité .

Donc, si vous avez perdu vos clés, vous pouvez faire défiler vers le haut et voir d'autres réponses . Mais si vous changez simplement votre fichier .pem pour des raisons de sécurité, suivez les étapes: -

1) Accédez à la connexion à la console AWS et créez un nouveau fichier .pem à partir de la section de paire de clés là-bas. Il sera automatiquement téléchargé le fichier .pem sur votre PC

2) changez l'autorisation en 400 si vous utilisez Linux / ubuntu appuyez sur la commande ci-dessous

chmod 400 yournewfile.pem

3) Générez le RSA du fichier nouvellement téléchargé sur votre machine locale

ssh-keygen -f yournewfile.pem -y

4) Copiez le code RSA d'ici

5) Maintenant, SSH sur votre instance via le fichier .pem précédent

ssh -i oldpemfileName.pem username@ipaddress

sudo vim  ~/.ssh/authorized_keys

6) Donnez un espace de deux lignes et collez le RSA copié du nouveau fichier ici, puis enregistrez le fichier

7) Maintenant, votre nouveau fichier .pem est lié à l'instance en cours d'exécution

8) Si vous souhaitez désactiver l'accès au fichier .pem précédent, modifiez simplement

sudo vim ~/.ssh/authorized_keys

déposer et supprimer ou modifier le RSA précédent à partir d'ici.

Remarque: - Retirez soigneusement afin que le RSA nouvellement créé ne soit pas modifié.

De cette façon, vous pouvez modifier / connecter le nouveau fichier .pem à votre instance en cours d'exécution.

Vous pouvez révoquer l'accès au fichier .pem généré précédemment pour des raisons de sécurité.

J'espère que cela aiderait!

Parveen yadav
la source
2
J'aime un peu cette solution car elle ne nécessite pas que je crée une nouvelle instance avec une image AMI figée. Mais cette méthode est-elle capable de changer le nom de paire de clés associé de l'instance EC2 dans le tableau de bord EC2? @Parveen yadav
accro
6

La solution la plus simple consiste à copier le contenu de

~/.ssh/id_rsa.pub

dans les clés autorisées de votre instance AWS à

~/.ssh/authorized_keys

Cela vous permettra de ssh dans l'instance EC2 sans spécifier de fichier pem pour la commande ssh. Vous pouvez supprimer toutes les autres clés une fois que vous avez testé la connexion à celui-ci.

Si vous devez créer une nouvelle clé pour la partager avec quelqu'un d'autre, vous pouvez le faire avec:

ssh-keygen -t rsa

qui va créer le fichier private key.pem, et vous pouvez obtenir la clé publique de celui-ci avec:

ssh-keygen -f private_key.pem -y > public_key.pub

Toute personne possédant private_key.pem pourra se connecter avec

ssh [email protected] -i private_key.pem
snez
la source
4
comment puis-je accéder ~/.ssh/authorized_keyslorsque je ne peux même pas l'instance aws SSH?
priagupd
3
Je crois que votre dernière ligne est incorrecte, vous ne pourrez vous connecter que si vous avez la clé privée. Ssh -i private_key.pem [email protected]. Si vous voulez que quelqu'un vous donne accès à leur instance, vous pouvez partager votre clé publique en toute sécurité avec eux et ils peuvent l'ajouter à leurs clés autorisées pour vous accorder l'accès à l'instance en tant qu'utilisateur ...
code4cause
5

Vous n'avez pas besoin de faire pivoter le périphérique racine et de modifier la clé publique SSH authorized_keys. Pour cela, vous pouvez utiliser les données utilisateur pour vous ajouter des clés ssh à n'importe quelle instance. Pour cela, vous devez d'abord créer un nouveau KeyPair à l'aide de la console AWS ou via ssh-keygen.

ssh-keygen -f YOURKEY.pem -y

Cela va générer une clé publique pour votre nouveau KeyHair SSH, copier cette clé publique et l'utiliser dans le script ci-dessous.

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:
- [scripts-user, always]

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

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

Après le redémarrage, la machine aura la clé de publication SSH spécifiée. Supprimez les données utilisateur après le premier redémarrage. En savoir plus sur les données utilisateur au démarrage .

Hardeep Singh
la source
4
  • Créer une nouvelle clé, par exemple en utilisant PuTTY Key Generator
  • Arrêter l'instance
  • Définir les données utilisateur d'instance pour envoyer la clé publique au serveur
  • Instance de démarrage

Avertissement: N'oubliez pas d'effacer à nouveau les données utilisateur. Sinon, cette clé sera poussée à chaque démarrage d'instance. Instructions étape par étape .

#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys

entrez la description de l'image ici

Reto Höhener
la source
1
Il s'agit de la façon officielle d'AWS de le faire, donc des accessoires à @reto. aws.amazon.com/premiumsupport/knowledge-center/…
Bevan
3

J'ai essayé les étapes ci-dessous et cela a fonctionné sans arrêter l'instance. Ma condition était - comme j'ai changé ma machine cliente, l'ancien fichier .pem ne me permettait pas de me connecter à l'instance ec2.

  1. Connectez-vous à l'instance ec2 à l'aide de votre ancien fichier .pem de l'ancienne machine. Ouvrez ~ / .ssh / authorized_keys

Vous verrez vos anciennes clés dans ce fichier.

  1. ssh-keygen -f YOUR_PEM_FILE.pem -y Il va générer une clé. Ajoutez la clé à ~ / .ssh / authorized_keys ouvert à l'étape # 1. Pas besoin de supprimer l'ancienne clé.

  2. À partir de la console AWS, créez une nouvelle paire de clés. Stockez-le dans votre nouvelle machine. Renommez-le en ancien fichier pem - la raison est que l'ancien fichier pem est toujours associé à l'instance ec2 dans AWS.

Terminé.

Je peux me connecter à l'AWS ec2 depuis ma nouvelle machine cliente.

M. Bordoloi
la source
3

Vous avez plusieurs options pour remplacer la clé de votre instance EC2.

  1. Vous pouvez remplacer la clé manuellement dans le fichier .ssh / authorized_keys. Cependant, cela nécessite que vous ayez réellement accès à l'instance ou au volume si celui-ci n'est pas chiffré.
  2. Vous pouvez utiliser AWS Systems Manager. Cela nécessite d'avoir un agent installé.

Étant donné que la première option peut être trouvée facilement dans les réponses ou dans le moteur de recherche de votre choix, je veux me concentrer sur le gestionnaire de systèmes.

  1. Ouvrez le service Systems Manager
  2. Cliquez sur Automationà gauche.
  3. Cliquer sur Execute Automation
  4. Sélectionnez AWSSupport-TroubleshootSSH(généralement c'est sur la dernière page)

Vous pouvez trouver plus d'informations sur la documentation AWS officielle

Hendric
la source
1

La réponse de Yegor256 a fonctionné pour moi, mais j'ai pensé que j'ajouterais juste quelques commentaires pour aider ceux qui ne sont pas si doués pour monter des disques (comme moi!):

Amazon vous donne le choix de ce que vous voulez nommer le volume lorsque vous l'attachez. Vous avez utilisé un nom dans la plage de / dev / sda - / dev / sdp Les nouvelles versions d'Ubuntu renommeront alors ce que vous y mettez en / dev / xvd (x) ou quelque chose à cet effet.

Donc pour moi, j'ai choisi / dev / sdp comme nom le nom du montage dans AWS, puis je me suis connecté au serveur, et j'ai découvert qu'Ubuntu avait renommé mon volume en / dev / xvdp1). J'ai ensuite dû monter le lecteur - pour moi, je devais le faire comme ceci:

mount -t ext4 xvdp1 /mnt/tmp

Après avoir sauté à travers tous ces cerceaux, j'ai pu accéder à mes fichiers dans / mnt / tmp

Ryan
la source
en tant que commentaire, cela devrait être ajouté en tant que commentaire, pas en tant que réponse.
JDL
0

Cela ne fonctionnera que si vous avez accès à l'instance dans laquelle vous souhaitez modifier / ajouter la clé. Vous pouvez créer une nouvelle paire de clés. Ou si vous avez déjà la paire de clés, vous pouvez coller la clé publique de la nouvelle paire dans le fichier authorized_keys sur votre instance.

vim .ssh / authorized_keys

Vous pouvez maintenant utiliser la clé privée de cette paire et vous connecter.

J'espère que cela t'aides.

skd
la source
0

Mon problème était, j'ai essayé avec IPplutôt que publiquement DNS. Puis j'ai essayé avec public DNSet c'est résolu

vipin cp
la source
0

si vous ne parvenez pas à vous connecter à VM et supprimé vos clés ssh et vous pouvez également modifier la paire de clés de votre ec2 en suivant les étapes ci-dessous. Passez à l'étape 1) arrêtez votre instance ec2. 2) prenez un instantané de la machine virtuelle et du stockage. 3) créez une nouvelle machine virtuelle tout en la créant, sélectionnez votre instantané et créez une VM à partir de votre instantané. 4) tandis que la création de VM télécharge votre paire de clés. 5) une fois votre VM UP vous pouvez ssh avec une nouvelle paire de clés et vos données seront également sauvegardées.

Raghunath Babalsure
la source
0

Ce que tu peux faire...

  1. Créez un nouveau profil / rôle d'instance auquel est associée la stratégie AmazonEC2RoleForSSM.

  2. Attachez ce profil d'instance à l'instance.

  3. Utilisez SSM Session Manager pour vous connecter à l'instance.
  4. Utilisez keygen sur votre ordinateur local pour créer une paire de clés.
  5. Poussez la partie publique de cette clé sur l'instance à l'aide de votre session SSM.
  6. Profit.
belial
la source
0

Merci du conseil les gars. Je les garderai certainement à l'esprit lorsque je devrai reposer les paires de clés. Cependant, dans un souci d'efficacité et de paresse, j'ai trouvé autre chose:

  1. Créez votre nouvelle paire de clés et téléchargez les informations d'identification
  2. Cliquez avec le bouton droit sur votre instance> Créer une AMI une fois l'opération terminée
  3. mettre fin à votre instance (ou simplement l'arrêter jusqu'à ce que vous soyez sûr de pouvoir en créer une autre à partir de votre nouvelle AMI brillante)
  4. Démarrez une nouvelle instance EC2 à partir de l'AMI que vous venez de créer et spécifiez votre nouvelle paire de clés créée à l'étape (1) ci-dessus.

J'espère que cela peut vous être utile et vous faire gagner du temps et minimiser la quantité de cheveux blancs que vous obtenez avec des trucs comme ça :)

George Smith
la source