Je viens de m'inscrire à la nouvelle offre Elastic Beanstalk d'Amazon. Ce que je ne peux pas comprendre, c'est comment SSH vers une instance Beanstalk. Je n'ai pas de clé privée car Beanstalk a généré l'instance en mon nom.
eb ssh
Je viens de m'inscrire à la nouvelle offre Elastic Beanstalk d'Amazon. Ce que je ne peux pas comprendre, c'est comment SSH vers une instance Beanstalk. Je n'ai pas de clé privée car Beanstalk a généré l'instance en mon nom.
eb ssh
Réponses:
J'ai trouvé que c'était un processus en 2 étapes. Cela suppose que vous avez déjà configuré une paire de clés pour accéder aux instances EC2 dans la région concernée.
elasticbeanstalk-default
groupe de sécurité si vous avez lancé une instance Elastic Beanstalk dans cette région.Modifiez le groupe de sécurité pour ajouter une règle d'accès SSH. Ce qui suit le verrouillera pour n'autoriser l'entrée qu'à partir d'une adresse IP spécifique.
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
champ. Une fois l'instance relancée, vous devez obtenir le nom d'hôte à partir de l'onglet Instances AWS Console EC2 ou via l'API. Vous devriez alors pouvoir accéder à ssh sur le serveur.
$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
Remarque: Pour ajouter une paire de clés à la configuration de l'environnement, la protection de terminaison des instances doit être désactivée car Beanstalk essaierait de terminer les instances actuelles et de démarrer de nouvelles instances avec KeyPair.
Remarque: Si quelque chose ne fonctionne pas, vérifiez l'onglet "Événements" dans l'application / les environnements Beanstalk et découvrez ce qui n'a pas fonctionné.
Elastic beanstalk CLI v3 prend désormais en charge SSH direct avec la commande eb ssh
. Par exemple
eb ssh your-environment-name
Pas besoin de tous les tracas de la mise en place de groupes de sécurité pour trouver l'adresse de l'instance EC2.
Il y a aussi cette astuce sympa:
eb ssh --force
Cela forcera temporairement le port 22 à s'ouvrir à 0.0.0.0, et le gardera ouvert jusqu'à ce que vous exit
. Cela allie un peu les avantages de la meilleure réponse, sans les tracas. Vous pouvez accorder temporairement à une autre personne que vous un accès pour le débogage et ainsi de suite. Bien sûr, vous devrez toujours télécharger leur clé publique sur l'hôte pour qu'ils y aient accès. Une fois que vous faites cela (et tant que vous êtes à l'intérieur eb ssh
), l'autre personne peut
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
. Vous pouvez également configurer un environnement spécifique avec l'option de configuration:eb ssh production --setup
Mon expérience en août 2013 avec un client Linux et une simple installation AWS Beanstalk (instance EC2 unique) est la suivante (basée sur le wiki communautaire ci-dessus)
awsweb...
groupe de sécurité et les détails devraient apparaître en bas de la pageBonne chance
J'ai aussi joué avec ça.
Le service sera relancé alors faites un café pendant 5 minutes
Sur votre onglet ec2 pour la même région, vous verrez votre nouvelle instance en cours d'exécution. ssh au nom du DNS public en tant qu'utilisateur ec2 en utilisant la clé ajoutée en 3, par exemple ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com
Les réponses ci-dessus sont un peu anciennes.
Créez d'abord une paire de clés, puis attachez-la à l'environnement Elastic Beanstalk.
Étapes pour créer une paire de clés
Étapes pour attacher la paire de clés créée à l'environnement Elastic Beanstalk
AWS -> Services -> Elastic Beanstalk
Sélectionnez votre environnement et cliquez sur la configuration à gauche.
Dans Présentation de la configuration, sélectionnez Modifier dans Sécurité.
Sous Autorisations de la machine virtuelle, sélectionnez la paire de clés que nous avons créée.
Cliquez sur enregistrer puis sur enregistrer la configuration.
Cela prendra un certain temps à réfléchir à votre instance EC2.
Si vous utilisez un bean élastique et une interface de ligne de commande EB, utilisez simplement eb ssh
pour vous connecter à l'instance. Vous pouvez utiliser les options spécifiées dans le lien suivant
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
Vous devez vous connecter directement à l'instance ec2 à l'aide de son adresse IP publique. Vous ne pouvez pas vous connecter à l'aide de l'URL élastiquebeanstalk.
Vous pouvez trouver l'adresse IP de l'instance en la recherchant dans la console ec2.
Vous devez également vous assurer que le port 22 est ouvert. Par défaut, l'interface de ligne de commande EB ferme le port 22 une fois la connexion ssh terminée. Vous pouvez appeler eb ssh -o pour garder le port ouvert une fois la session ssh terminée.
Avertissement: Vous devez savoir que le beanstalk élastique peut remplacer votre instance à tout moment. L'état n'est garanti sur aucune de vos instances de haricot élastique. Il est probablement préférable d'utiliser ssh uniquement à des fins de test et de débogage, car tout ce que vous modifiez peut disparaître à tout moment.
La direction pour définir la paire de clés pour une instance ElasticBeanstalk ec2 avec l'interface utilisateur actuelle est: Avertissement: Cela nécessitera une mise à jour des instances EC2 dans votre application ElasticBeanstalk. Remarque: Vous devez avoir créé une paire de clés dans le tableau de bord EC2 avant cela.
1) Dans AWS Dashboard, sélectionnez le service ElasticBeanstalk 2) Sélectionnez l'application que vous souhaitez utiliser. 3) Sélectionnez «Configuration» 4) Sélectionnez l'icône d'engrenage (paramètres) dans la boîte de configuration «Instances». 5) Cela vous amènera à une page intitulée «Serveur», où vous pouvez mettre à jour le champ déroulant «Paire de clés EC2» avec votre paire de clés souhaitée et sélectionner «Enregistrer».
Une chose à noter est que cela peut ne pas fonctionner pour les applications avec plusieurs instances (mais je pense que c'est probable si elles sont toutes dans la même région que la paire de clés).
Je suis venu ici à la recherche d'un moyen d'ajouter une clé à une instance créée par Beanstalk pendant l'approvisionnement (nous utilisons Terraform). Vous pouvez effectuer les opérations suivantes dans Terraform:
resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
...
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "EC2KeyName"
value = "${aws_key_pair.your-ssh-key.key_name}"
}
...
}
Vous pouvez ensuite utiliser cette clé pour SSH dans la boîte.
Si vous avez configuré la CLI à l'aide eb init
de votre environnement, cela devrait être aussi simple que
eb ssh --setup
qui vous permettra de créer une nouvelle paire de clés ou d'en utiliser une existante s'il en existe une.
Vous pouvez également être en mesure de simplement vous connecter à l'environnement existant, eb use
même si je ne l'ai pas fait.
Pour plus de détails sur l'installation de la CLI - https://docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install
Sur mac, vous pouvez installer le cli en utilisant brew:
brew install awsebcli
Avec l'outil de ligne de commande, vous pouvez ensuite utiliser ssh avec:
eb ssh environment-name
et aussi faire d'autres opérations. Cela suppose que vous avez ajouté un groupe de sécurité qui autorise ssh à partir de votre IP.
En fonction de la configuration de votre environnement, il se peut que vous ne disposiez pas d'une adresse IP publique sur l'instance EC2 qui a été créée pour votre environnement. Vous pouvez vérifier par:
Enfin, sélectionnez votre nouveau EIP et choisissez Adresse d'associé dans le menu d'action. Associez cette IP à votre instance EC2. Vous devriez pouvoir vous connecter en utilisant eb ssh
maintenant.
Vous pouvez réinitialiser les détails de la connexion en exécutant eb ssh --setup
.
J'ai également rencontré le même problème il y a quelque temps. Je voulais utiliser le fichier de clé, mais Amazon dit quelque part que vous ne pouvez pas ajouter de fichier de clé à un serveur EC2 existant. Pour la première application Beanstalk, Amazon préconfigure l'application pour vous. Vous devez créer une nouvelle application et vous pouvez configurer le serveur EC2 qui exécute l'application Beanstalk pour utiliser un ancien fichier pem (ppk si vous utilisez Putty), ou vous pouvez en créer un nouveau. Vous devriez maintenant pouvoir SSH.
Ensuite, configurez, puis supprimez votre ancienne application.