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

Comment puis-je changer la paire de clés pour 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.

298
demandé sur Pat Myron 2011-10-25 00:19:06

13 réponses

Viens de le faire: 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 billet du blog D'Eric Hammond:

  1. Arrêter l'exécution d'instance EC2
  2. détachez son /dev/xvda1 volume (appelons-le volume a) - voir ici
  3. nouveau 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 créer à nouveau. - voir ici
  4. joindre le volume A à la nouvelle instance, comme /dev/xvdf (ou /dev/sdf )
  5. SSH à la nouvelle instance micro et de monter le volume /mnt/tmp

    $ sudo mount / dev/xvdf1 /mnt /tmp

  6. Copie ~/.ssh/authorized_keys à /mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Déconnexion
  8. mettre fin à micro-instance
  9. en détacher le volume A
  10. attacher le volume A à l'instance principale en tant que /dev/xvda
  11. Démarrer l'instance principale
  12. connectez-vous comme avant, en utilisant votre nouveau .pem fichier

c'est il.

382
répondu yegor256 2018-04-27 19:38:47

une fois qu'une instance a été lancée, il n'y a aucun moyen de changer la paire de touches associée à l'instance au niveau des méta-données, mais vous pouvez changer la clé ssh que vous utilisez pour vous connecter à l'instance.

il y a un processus de démarrage sur la plupart des AMIs qui télécharge la clé publique ssh et l'installe dans un .SSH / authorized_keys fichier de sorte que vous pouvez ssh en tant qu'utilisateur en utilisant la clé privée SSH correspondante.

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

le fichier authorized_keys est sous le .sous-répertoire ssh sous le répertoire d'accueil de l'utilisateur dans lequel vous vous connectez. Selon L'AMI que vous exécutez, il pourrait être dans l'un des:

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

après avoir édité un fichier authorized_keys, utilisez toujours un terminal différent pour confirmer que vous pouvez vous connecter à l'instance avant de vous déconnecter de la session que vous utilisez pour éditer le fichier. Vous ne voulez pas faire une erreur et vous enfermer complètement hors de l'instance.

pendant que vous pensez à des claviers ssh sur EC2, je vous recommande de télécharger votre propre Clé publique SSH sur EC2 au lieu d'avoir Amazon pour générer le clavier pour vous.

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

Téléchargement de clés personnelles SSH sur Amazon EC2

http://alestic.com/2010/10/ec2-ssh-keys

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

158
répondu Eric Hammond 2011-10-24 21:13:42

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

ssh-keygen -f YOURKEY.pem -y

puis dump la sortie dans authorized_keys .

ou copiez le fichier pem dans votre instance AWS et exécutez les commandes suivantes

chmod 600 YOURKEY.pem

et ensuite

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
66
répondu Pat Mcb 2014-11-26 14:17:44

Instruction de AWS EC2 support:

  1. Changement pem login
  2. allez à votre Console EC2
  3. sous réseau et 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 l' une paire de clés sera utilisée pour se connecter à votre instance
  5. créez une connexion SSH à votre instance et gardez-la Ouverte
  6. dans PuttyGen, cliquez sur "Load" pour charger votre .fichier pem
  7. gardez le bouton radio SSH-2 RSA vérifié. Cliquez sur " Enregistrer la clé privée" Vous obtiendrez l'avertissement de fenêtre pop-up, cliquez sur" Oui "
  8. Cliquez aussi sur" Enregistrer la clé publique", pour générer la clé publique. C'est la clé publique que nous allons copier à votre instance actuelle
  9. Enregistrer la clé publique avec le nouveau nom de paire de clés et avec le extension. pub
  10. ouvrir le contenu à clé publique dans un bloc-notes
  11. copier le contenu ci-dessous "Commentaire: "importés-openssh-clé" et avant "- - - - END SSH2 CLÉ PUBLIQUE - - - -

    Remarque - vous devez copier le contenu comme une ligne - supprimer toutes les nouvelles lignes
  12. sur votre instance connectée, ouvrez votre fichier authorized_keys en utilisant l'outil vi. Exécutez la commande suivante: vi .SSH / authorized_keys vous devriez voir la clé publique originale dans le dossier aussi
  13. déplacez votre curseur sur le fichier à la fin de votre première clé publique contenu :type" i "pour insérer
  14. sur la nouvelle ligne, tapez "ssh-rsa" et ajouter un espace avant de coller le contenu de la clé publique , l'espace et le nom du .pem fichier (sans l' .pem) Remarque - vous devez obtenir une ligne avec le même format que la ligne précédente
  15. appuyez sur la touche Esc, puis tapez: wq!

mise à jour du fichier authorized_keys

essayez maintenant d'ouvrir une nouvelle session SSH à votre instance en utilisant votre nouvelle clé pai

lorsque vous avez confirmé que vous êtes en mesure de SSH dans l'instance en utilisant la nouvelle paire de clés, u can vi .ssh / authorized_key et supprimez l'ancienne clé.

réponse à Saggie remarque:

si vous n'êtes pas capable de vous connecter à l'instance (par exemple, la clé est corrompue) que d'utiliser 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, que de changer la clé sur le volume et le rattacher de nouveau à l'instance précédente.

39
répondu Elia Weiss 2017-03-19 06:07:52

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

EC2KeyName: les modifications à L'option ec2keyname ne prendront pas effet immédiatement. Chacune de vos instances EC2 existantes sera remplacée et vos nouveaux paramètres prennent effet.

mon instance était déjà terminée quand j'ai fait ceci. Elle a ensuite commencé, s'est terminée et a recommencé. Apparemment, "remplacer" signifie supprimer et créer une nouvelle instance. Si vous avez modifié votre volume d'amorçage, créez d'abord un AMI, puis spécifiez que AMI dans le même format élastique Beanstalk > Configuration > Instances que le Custom AMI ID . Ceci met également en garde contre le remplacement des instances EC2.

après avoir modifié votre paire de clés EC2 et votre code personnalisé, et après avoir vu les avertissements sur les deux, cliquez sur Save 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 à utiliser lors de la connexion via SSH.

31
répondu Mark Berry 2018-03-29 15:54:38

je suis passé par cette approche, et après un certain temps, a été en mesure de faire fonctionner. Le manque de commandes rendait les choses difficiles, mais j'ai compris. Toutefois , 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 redémarrage). Cela ne marchera que si EBS est soutenu.
  2. ensuite, démarrez simplement une instance à partir de cet AMI et assignez votre nouveau fichier-clé.
  3. Déplacez votre IP élastique (le cas échéant) vers votre nouvelle instance, et vous avez terminé.
27
répondu OldGreg 2014-03-17 15:16:53

modifiant la réponse de " yegor256 ". Comme si les étapes ci-dessous sont suivies de sauver beaucoup de temps et il n'y aura pas besoin d'arrêter l'instance en cours d'exécution.

  1. Commencer une nouvelle t1.micro EC2 instance, 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 créer à nouveau.
  2. SSH à la nouvelle micro instance et copie du contenu de ~/.ssh/authorized_keys quelque part sur votre ordinateur.
  3. Se connecter à l'instance principale avec ancienne clé ssh .
  4. copier & remplacer le contenu du fichier de point 2 à ~/.SSH / authorized_keys
  5. Maintenant vous pouvez vous connecter à nouveau seulement avec la nouvelle clé. La vieille clé ne marchera plus.

C'est tout. Profiter de :)

10
répondu vinay saini 2017-04-17 10:55:51

si vous utilisez la plate-forme ElasticBeanstalk, vous pouvez changer les touches en allant:

  • Elastic Beanstalk panel
  • Configuration
  • Instances (cog en haut à droite)
  • paire de clés EC2

ceci terminera l'instance courante et en créera une nouvelle avec les clés/paramètres choisis.

8
répondu Vaelyr 2015-11-02 21:37:21

je crois que l'approche la plus simple est de:

  1. créer une image d'origine.
  2. lance une nouvelle instance EC2 en utilisant AMI image (de l'étape 1) avec une nouvelle paire de clés.
  3. Se connecter à une nouvelle instance EC2 avec une nouvelle clé.
5
répondu Sergey 2016-07-04 08:43:23

la réponse de Yegor256 a fonctionné pour moi, mais j'ai pensé que je voudrais juste ajouter quelques commentaires pour aider ceux qui ne sont pas si bon à monter des commandes(comme moi!):

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

donc pour moi, j'ai choisi /dev / sdp comme nomme le nom de 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 alors dû monter le drive - for me j'ai dû le faire comme ceci:

mount -t ext4 xvdp1 /mnt/tmp

après avoir franchi tous ces obstacles, je pouvais accéder à mes fichiers à/mnt / tmp

1
répondu Ryan 2016-05-01 21:46:07

j'ai essayé en bas des marches et cela a fonctionné sans arrêter l'instance. Mon exigence était - comme j'ai changé mon ordinateur client, le vieux .fichier pem ne me permettait pas de se connecter à l'instance ec2.

  1. connectez-vous à l'instance ec2 en utilisant votre ancienne .fichier pem de l'ancienne machine. Ouvrir./~ SSH / authorized_keys

vous verrez vos vieilles clés dans ce fichier.

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

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

tout est fait.

je peux me connecter à L'AWS ec2 de ma nouvelle machine client.

1
répondu Mr. Bordoloi 2016-11-22 06:17:00

la solution La plus simple est de copier le contenu de

~/.ssh/id_rsa.pub

dans votre instance AWS authorized_keys à

~/.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.

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 créera la clé privée.fichier pem, et vous pouvez obtenir la clé publique de ce avec:

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

quiconque a la clé publique.pub sera en mesure de se connecter avec

ssh user@host.com -i public_key.pub
1
répondu snez 2017-01-27 15:21:57

Cela ne fonctionnera que si vous avez accès à l'instance que 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 ensuite coller la clé publique de la paire dans le fichier authorized_keys sur votre instance.

vim .SSH / authorized_keys

Maintenant, vous pouvez utiliser la clé privée pour cette paire et connectez-vous.

Espérons que cette aide.

0
répondu skd 2015-10-05 19:59:33