Changer de paire de clés pour l'instance ec2
Comment puis-je changer la paire de clés pour mon instance ec2 dans AWS management console? Je peux arrêter l'exemple, je peux créer une nouvelle paire de clés, mais je ne vois pas de lien pour modifier l'instance de la paire de clés.
- J'ai suivi les étapes indiquées dans cette vidéo, et cela a fonctionné youtube.com/watch?v=OF2AOekW4IE
Vous devez vous connecter pour publier un commentaire.
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, merci à Eric de Hammond blog:
/dev/xvda1
volume (appelons-le volume Un) - voir ici/dev/xvdf
(ou/dev/sdf
)SSH à la nouvelle instance micro et de monter le volume à
/mnt/tmp
$ sudo mount /dev/xvdf1 /mnt/tmp
Copie
~/.ssh/authorized_keys
à/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
fichierQue c'est.
mkdir /mnt/tmp
et puismount /dev/xvdf /mnt/tmp
devrait faire l'affaire pour le #5. Et n'oubliez pas l'étape 13. est probablementrm ~/.ssh/known_hosts
sur les boîtes que vous avez été à la connexion à partir de.Server.InternalError: Internal error on launch
sur l'instance d'origine après j'ai eu de nouveau attaché à ses EBS disque /dev/sda. Maintenant, je ne peux même pas démarrer l'instance. Cool..ssh/authorized_keys
fichier.sudo chown ubuntu:ubuntu authorized_keys
ou un parent de l'utilisateur./dev/sda1
au lieu de/dev/xvda
pour la principale instance de démarrer à nouveau. Elle dépend de la distribution (ubuntu ici).~/.ssh/authorized_keys
avec la nouvelle clé, pas besoin de tous les tracas avec les volumesYou can detach an Amazon EBS volume from an instance explicitly or by terminating the instance. However, if the instance is running, you must first unmount the volume from the instance.
Donc dois-je arrêter l'instance de première ou de démonter le volume d'abord?Une fois qu'une instance a été commencé, il n'y a aucun moyen de changer la paire de clés associé à l'instance à un méta-niveau de données, mais vous pouvez changer ce que la clé ssh que vous utilisez pour vous connecter à l'instance.
Il y a un processus de démarrage sur la plupart des AMIs que des téléchargements de la clé ssh publique et l'installe dans un .ssh/authorized_keys de sorte que vous pouvez ssh en tant que cet utilisateur à l'aide de l'privée correspondante de clés ssh.
Si vous souhaitez modifier ce que la clé ssh que 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 dans le cadre du .ssh sous-répertoire dans le répertoire home de l'utilisateur que vous êtes connecté en tant. Selon l'AMI, vous êtes en cours d'exécution, il peut être dans l'un des:
Après l'édition d'un fichier authorized_keys, utilisez toujours un différents terminal pour confirmer que vous êtes en mesure de ssh à l'instance avant de vous déconnecter de la session que vous utilisez pour modifier le fichier. Vous ne voulez pas faire une erreur et de s'enfermer à clé de l'instance entièrement.
Pendant que vous êtes en train de penser à propos de paires de clés ssh sur EC2, je vous recommandons de télécharger votre propre clé publique ssh à l'EC2 au lieu d'avoir Amazon générer la paire de clés pour vous.
Voici un article que j'ai écrit à ce sujet:
Cela ne s'applique que pour les nouvelles instances à vous exécutez.
.pem
fichier sur mon Mac, cependantssh -i key.pem
n'a pas à s'authentifier (permission denied (publickey)). Dans l'EC2 de la Console de Gestion en vertu de la Paire de Clés Nom il des listes de rien. Cette situation est alarmante pour moi. Comment puis-je le régler? Il semble être basé sur la Console de Gestion pas de paires de clés, j'ai configuré ont été affectés à l'exemple!Exécuter cette commande après le téléchargement de votre AWS pem.
Vider la sortie en
authorized_keys
.Ou copier le fichier pem à votre AWS instance et d'exécuter les commandes suivantes
et puis
Instruction de la AWS EC2 support:
paire de clés sera utilisé pour se connecter à votre instance
Vous obtiendrez la fenêtre pop-up d'avertissement, cliquez sur "Oui”
C'est la clé publique que nous allons copier à votre
instance en cours
l'extension .pub
"---- FIN SSH2 CLÉ PUBLIQUE ----
Remarque - vous devez copier le contenu
comme une ligne - supprimer toutes les nouvelles lignes
l'outil vi. Exécutez la commande suivante: vi .ssh/authorized_keys
vous devriez voir l'original de la clé publique dans le fichier aussi
contenu :type "i" pour insérer
le contenu de la clé publique , de l'espace, et le nom de l' .pem
fichier (sans l' .pem)
Remarque - vous devez obtenir une ligne avec le même format que la ligne précédente
cela permettra de sauver la mise à jour du fichier authorized_keys
maintenant, essayez d'ouvrir une nouvelle session SSH à votre instance à l'aide de votre nouvelle clé de pai
Lorsque vous avez confirmé que vous êtes en mesure de faire un SSH sur l'instance à l'aide de la nouvelle paire de clés, u peut vi .ssh/authorized_key et supprimer l'ancienne clé.
Réponse à Shaggie remarque:
Si vous ne parvenez pas à vous connecter à l'instance (par exemple une clé est endommagée) 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 remettre à travailler instance, que le changement de la clé sur le volume et la rattacher de nouveau à l'instance précédente.
J'ai remarqué que lorsqu'ils sont gérés par Elastic Beanstalk, vous peut changer votre actif EC2 paire de clés. En vertu de l'Elastic Beanstalk > Configuration > Sécurité, choisissez la clé nouvelle de l' EC2 paire de clés déroulante. Vous verrez ce message pour vous demander si vous êtes sûr:
Mon exemple était déjà terminé quand j'ai fait cela. Elle a commencé alors, résilié, et a commencé à nouveau. Apparemment, "remplaçant" signifie la destruction et de la création d'une nouvelle instance. Si vous avez modifié votre volume de démarrage, créez un AMI d'abord, puis de spécifier que l'AMI dans le même Elastic Beanstalk > Configuration > les Instances formulaire comme AMI Personnalisée ID. Cela met également en garde sur le remplacement de la instances EC2.
Après que vous avez modifié votre EC2 paire de clés et Personnalisé ID d'AMI, et après avoir vu les avertissements concernant à la fois, cliquez sur Enregistrer pour continuer.
Rappelez-vous que l'adresse IP change lorsque l'instance est créée à nouveau de sorte que vous aurez besoin de récupérer une nouvelle adresse IP à partir de la console EC2 à utiliser lors de la connexion via SSH.
Je suis passé par cette approche, et après un certain temps, a été en mesure de le faire fonctionner. Le manque de réelles commandes rendu dur, mais j'ai tout compris. TOUTEFOIS - approche beaucoup plus facile a trouvé et testé peu de temps après:
Si les étapes ci-dessous sont respectées il sauver beaucoup de temps et il n'y aura pas besoin d'arrêter l'instance en cours d'exécution.
Qui est-il. Profitez de 🙂
Dans le cas où vous utilisez ElasticBeanstalk plate-forme, vous pouvez modifier les touches en allant:
Cela permettra de mettre fin à l'instance courante et crée une nouvelle choisi touches/paramètres.
Je crois que l'approche la plus simple est de :
La solution la plus simple est de copier le contenu de
dans votre AWS instance authorized_keys à
Cela vous permettra de ssh dans l'instance EC2 sans spécifier un fichier pem pour la commande ssh. Vous pouvez supprimer toutes les autres clés une fois que vous avez testé la connexion.
Si vous avez besoin de créer une nouvelle clé pour le partager avec quelqu'un d'autre, vous pouvez le faire avec:
qui permettra de créer la clé privée.fichier pem, et vous pouvez obtenir la clé publique de ce avec:
N'importe qui qui a private_key.pem sera capable de se connecter avec
~/.ssh/authorized_keys
quand je ne peux même pas SSH aws exemple?J'ai essayé les étapes ci-dessous et il a travaillé sans arrêt de 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.
Vous verrez vos anciennes clés dans ce fichier.
ssh-keygen -f YOUR_PEM_FILE.pem -y
Il va générer une clé. Ajouter la clé de ~/.ssh/authorized_keys ouvert dans l'étape#1. Pas besoin de supprimer l'ancienne clé.
De console AWS, créer une nouvelle paire de clés. De le stocker dans votre nouvelle machine. Renommer l'ancien fichier pem - la raison est vieux fichier pem est toujours associé à l'instance ec2 dans AWS.
Tous fait.
Je suis en mesure de vous connecter à AWS ec2 de mon nouvel ordinateur client.
Yegor256 réponse a fonctionné pour moi, mais j'ai pensé que je voudrais simplement ajouter quelques commentaires pour aider ceux qui ne sont pas si bon au montage des lecteurs(comme moi!):
Amazon vous donne un choix de ce que vous souhaitez nommer le volume lorsque vous le branchez. Vous avez un nom dans la gamme à partir de /dev/sda /dev/sdp
Les nouvelles versions de Ubuntu puis renommez ce que vous mettez là-bas pour /dev/xvd(x) ou quelque chose à cet effet.
Donc pour moi, j'ai choisi /dev/sdp comme nom le nom de montage dans AWS, puis je me suis connecté sur le serveur, et a découvert que Ubuntu a renommé mon volume /dev/xvdp1). J'ai eu ensuite pour monter le lecteur - pour moi, je devais le faire comme ceci:
Après le saut grâce à tous ces cerceaux j'ai pu accéder à mes fichiers sur le répertoire /mnt/tmp
Vous disposez de plusieurs options pour remplacer les clés de votre instance EC2.
Depuis la première option peuvent être trouvés facilement dans les réponses ou le moteur de recherche de votre choix, je veux me concentrer sur le Gestionnaire de Systèmes.
Systems Manager
Automation
sur le côté gauche.Execute Automation
AWSSupport-TroubleshootSSH
(en général c'est sur la dernière page)Vous pouvez trouver plus d'informations sur le Officiel AWS Documentation
Cela fonctionnera seulement si vous avez accès à l'instance que vous souhaitez modifier/ajouter la clé dans.
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ère que cette aide.
Vous n'avez pas besoin de faire pivoter l'appareil racine et changer la Clé Publique SSH dans
authorized_keys
. Pour qui peut utiliser les données de l'utilisateur à ajouter des clés ssh pour n'importe quelle instance. Pour cela vous devez d'abord créer une nouvelle paire de Clés à l'aide d'AWS console ou via ssh-keygen.Cela va générer la clé publique de votre nouvelle paire de Clés SSH, copie de cette clé publique et de l'utiliser dans le script ci-dessous.
Après le redémarrage de la machine après avoir spécifié SSH publch clé.
Supprimer les données de l'utilisateur après le premier redémarrage. Lire plus à propos de userdata au démarrage.
Ma question est , j'ai essayé avec
IP
plutôt que publicDNS
. Puis j'ai essayé avecpublic DNS
et ses résolu