J'ai eu accès à la console AWS à un compte avec 2 instances en cours d'exécution que je ne peux pas arrêter (en production). Je voudrais cependant obtenir un accès SSH à ces instances, est-il possible de créer une nouvelle paire de clés et de l'appliquer aux instances afin que je puisse SSH dans? L'obtention du fichier pem existant pour la paire de clés sous laquelle les instances ont été créées n'est actuellement pas une option.
Si ce n'est pas possible, y a-t-il un autre moyen d'accéder aux instances?
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Chris Wagner
la source
la source
ssh-add
devrait faire ce dont vous avez besoin.Réponses:
Vous ne pouvez pas appliquer une paire de clés à une instance en cours d'exécution. Vous ne pouvez utiliser la nouvelle paire de clés que pour lancer une nouvelle instance.
Pour la récupération, s'il s'agit d'une AMI de démarrage EBS, vous pouvez l'arrêter, faire un instantané du volume. Créez un nouveau volume en fonction de celui-ci. Et pouvoir la réutiliser 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, je voulais capturer les informations dans le lien que Rodney a posté sur son commentaire.
Nous remercions Eric Hammond pour ces informations .
Correction des fichiers sur le volume EBS racine d'une instance EC2
Vous pouvez examiner et modifier des fichiers sur le volume EBS racine sur une instance EC2 même si vous vous trouvez dans ce que vous considérez comme une situation désastreuse comme:
Sur un ordinateur physique assis à votre bureau, vous pouvez simplement démarrer le système avec un CD ou une clé USB, monter le disque dur, extraire et réparer les fichiers, puis redémarrer l'ordinateur pour reprendre le travail.
Cependant, une instance EC2 distante semble distante et inaccessible lorsque vous êtes dans l'une de ces situations. Heureusement, AWS nous offre la puissance et la flexibilité nécessaires pour pouvoir récupérer un système comme celui-ci, à condition que nous exécutions des instances de démarrage EBS et non un magasin d'instances.
L'approche sur EC2 est quelque peu similaire à la solution physique, mais nous allons déplacer et monter le «disque dur» défectueux (volume EBS racine) sur une autre instance, le réparer, puis le reculer.
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:
Installer
Identifiez l'instance (A) et le volume d'origine contenant le volume EBS racine rompu avec les fichiers que vous souhaitez afficher et modifier.
Identifiez la deuxième instance EC2 (B) que vous utiliserez pour corriger les fichiers sur le volume EBS d'origine. Cette instance doit être exécutée dans la même zone de disponibilité que l'instance A afin qu'elle puisse être associée au volume EBS. Si aucune instance n'est déjà en cours d'exécution, démarrez-en une temporaire.
Arrêtez l'instance cassée A (en attendant qu'elle s'arrête complètement), détachez le volume EBS racine de l'instance (en attendant qu'il soit détaché), puis attachez le volume à l'instance B sur un périphérique inutilisé.
ssh pour l'instance B et montez le volume afin que vous puissiez accéder à son système de fichiers.
Répare le
À ce stade, l'intégralité de votre système de fichiers racine de l'instance A est disponible pour l'affichage et la modification sous / vol-a sur l'instance B. Par exemple, vous pouvez:
Remarque: les UID des deux instances peuvent ne pas être identiques, alors faites attention si vous créez, modifiez ou copiez des fichiers appartenant à 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 montrez des fichiers avec un nom, puis ramenez le volume sur A.
Emballer
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):
Maintenant, de retour sur votre système avec ec2-api-tools, continuez de déplacer le volume EBS vers son emplacement d'origine sur l'instance A d'origine et redémarrez l'instance:
J'espère que vous avez résolu le problème, l'instance A se présente très bien et vous pouvez accomplir ce que vous aviez initialement prévu de faire. Si ce n'est pas le cas, vous devrez peut-être continuer à répéter ces étapes jusqu'à ce qu'il fonctionne.
Remarque: Si vous aviez une adresse IP Elastic affectée à l'instance A lorsque vous l'avez arrêtée, vous devrez la réassocier après l'avoir redémarrée.
Rappelles toi! Si votre instance B a été temporairement démarrée juste pour ce processus, n'oubliez pas de la terminer maintenant.
la source
Bien que vous ne puissiez pas ajouter directement une paire de clés à une instance EC2 en cours d'exécution, vous pouvez créer un utilisateur Linux et créer une nouvelle paire de clés pour lui, puis l'utiliser comme vous le feriez avec la paire de clés de l'utilisateur d'origine.
Dans votre cas, vous pouvez demander au propriétaire de l'instance (qui l'a créé) de procéder comme suit. Ainsi, le propriétaire de l'instance n'a pas à partager ses propres clés avec vous, mais vous pourrez toujours accéder à ces instances. Ces étapes ont été initialement publiées par Utkarsh Sengar (alias. @Zengr ) sur http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/ . Je n'ai fait que quelques petits changements.
Étape 1: connectez-vous par défaut à l'utilisateur "ubuntu" :
Étape 2: créez un nouvel utilisateur, nous appellerons notre nouvel utilisateur «john» :
Définissez le mot de passe pour «john» en:
Ajoutez «john» à la liste sudoer en:
.. et ajoutez ce qui suit à la fin du fichier:
Bien! Nous avons créé notre nouvel utilisateur, vous devez maintenant générer le fichier de clé qui sera nécessaire pour vous connecter, comme nous avons my_orin_key.pem à l'étape 1.
Maintenant, quittez et revenez à ubuntu, hors de la racine.
Étape 3: création des clés publiques et privées :
Saisissez le mot de passe que vous avez créé pour «john» à l'étape 2. Créez ensuite une paire de clés. N'oubliez pas que la phrase secrète pour la paire de clés doit contenir au moins 4 caractères.
Dans l'étape ci-dessus, john est l'utilisateur que nous avons créé et ubuntu est le groupe d'utilisateurs par défaut.
Étape 4: il vous suffit maintenant de télécharger la clé appelée «john» . J'utilise scp pour télécharger / télécharger des fichiers depuis EC2, voici comment vous pouvez le faire.
Vous devrez toujours copier le fichier à l'aide de l' utilisateur ubuntu , car vous ne disposez que de la clé pour ce nom d'utilisateur. Ainsi, vous devrez déplacer la clé vers le dossier ubuntu et la modifier en 777.
Maintenant, venez au terminal de la machine locale, où vous avez le fichier my_orig_key.pem et procédez comme suit:
La commande ci-dessus copiera la clé «john» dans le répertoire de travail actuel sur votre machine locale. Une fois que vous avez copié la clé sur votre ordinateur local, vous devez supprimer «/ home / ubuntu / john», car il s'agit d'une clé privée.
Maintenant, une de votre machine locale chmod john à 600.
Étape 5: il est temps de tester votre clé :
Ainsi, de cette manière, vous pouvez configurer plusieurs utilisateurs pour utiliser une seule instance EC2 !!
la source
Sur votre machine locale, exécutez la commande:
Après l'exécution de cette commande, un fichier se terminant par * .pub sera généré. Copiez le contenu de ce fichier.
Sur la machine Amazon, modifiez ~ / .ssh / authorized_keys et collez le contenu du fichier * .pub (et supprimez d'abord tout contenu existant).
Vous pouvez ensuite SSH en utilisant l'autre fichier qui a été généré à partir de la commande ssh-keygen (la clé privée).
la source
ssh-rsa AAAAB3NzaC1yc2EA...DsGt66 my-key-pair
Cela m'est arrivé plus tôt (je n'avais pas accès à une instance EC2 créée par quelqu'un d'autre mais j'avais accès à la console Web AWS) et j'ai blogué la réponse: http://readystate4.com/2013/04/09/aws-gaining- ssh-access-to-an-ec2-instance-you-lost-access-to /
Fondamentalement, vous pouvez détacher le lecteur EBS, le connecter à un EC2 auquel vous avez accès. Ajoutez votre clé de publication SSH
~ec2-user/.ssh/authorized_keys
sur ce lecteur connecté. Ensuite, remettez-le sur l'ancienne instance EC2. étape par étape dans le lien à l'aide d'Amazon AMI.Pas besoin de faire des instantanés ou de créer une nouvelle instance clonée.
la source
Dans mon cas, j'ai utilisé cette documentation pour associer une paire de clés à mon instance d'Elastic Beanstalk
Configuration des instances de serveur Amazon EC2 avec Elastic Beanstalk
la source
Vous pouvez simplement ajouter une nouvelle clé à l'instance par la commande suivante:
Vous pouvez configurer domain_alias dans la configuration ~ / .ssh
la source
Je n'ai pas trouvé de moyen facile d'ajouter une nouvelle paire de clés via la console, mais vous pouvez le faire manuellement.
Connectez-vous simplement à votre boîtier EC2 avec la paire de clés existante. Modifiez ensuite les ~ / .ssh / authorized_keys et ajoutez la nouvelle clé sur une nouvelle ligne. Quittez et ssh via la nouvelle machine. Succès!
la source
stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance
la source
Pour les environnements Elasticbeanstalk, vous pouvez appliquer une paire clé-valeur à une instance en cours d'exécution comme ceci:
la source
Vous pouvez réellement ajouter une paire de clés via la page de configuration de beanstalk élastique. il redémarre ensuite votre instance pour vous et tout fonctionne.
la source