web-dev-qa-db-fra.com

SSH à l'instance Elastic Beanstalk

Je viens de m'inscrire à la nouvelle offre d'Amazon Elastic Beanstalk. Ce que je ne peux pas comprendre, c'est comment SSH pour une instance Beanstalk. Je n'ai pas de clé privée car Beanstalk a généré l'instance pour moi.

256
Benno Waldmann

J'ai trouvé qu'il s'agissait d'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.

Configurer le groupe de sécurité

  1. Dans la console AWS, ouvrez l'onglet EC2.
  2. Sélectionnez la région appropriée et cliquez sur Groupe de sécurité.
  3. Vous devriez avoir un groupe de sécurité elasticbeanstalk-default si vous avez lancé une instance Elastic Beanstalk dans cette région.
  4. Modifiez le groupe de sécurité pour ajouter une règle pour l'accès SSH. Ce qui suit le verrouille pour autoriser uniquement l’entrée d’une adresse IP spécifique.

    SSH | tcp | 22 | 22 | 192.168.1.1/32
    

Configurez l'environnement de votre application Elastic Beanstalk

  1. Si vous n'avez pas encore créé de paire de clés, créez-en une en cliquant sur Paires de clés sous Groupe de sécurité dans l'onglet ec2.
  2. Dans la console AWS, ouvrez l'onglet Elastic Beanstalk.
  3. Sélectionnez la région appropriée.
  4. Sélectionnez l'environnement pertinent
  5. Sélectionnez Configurations dans le volet gauche.
  6. Sélectionnez des instances.
  7. Sous "Paire de clés EC2:", sélectionnez le nom de votre paire de clés dans le champ Existing Key Pair

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 être capable de SSH sur le serveur.

$ ssh -i path/to/keypair.pub [email protected]

Remarque: pour ajouter une paire de clés à la configuration de l'environnement, la protection de terminaison d'instances doit être désactivée, car Beanstalk essaierait de mettre fin aux instances actuelles et de démarrer de nouvelles instances avec KeyPair. 

Remarque: Si quelque chose ne fonctionne pas, consultez l'onglet "Evénements" de l'application/des environnements Beanstalk et recherchez ce qui ne va pas.

415
jabley

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 configuration de groupes de sécurité pour trouver l'adresse de l'instance EC2.

Il y a aussi ce truc cool: 

eb ssh --force

Cela forcera temporairement l’ouverture du port 22 à 0.0.0.0 et le gardera ouvert jusqu’à exit. Cela mélange un peu des avantages de la réponse optimale, sans les tracas. Vous pouvez accorder temporairement à quelqu'un d'autre que vous y avez accès un accès au débogage, etc. Bien sûr, vous devrez toujours télécharger leur clé publique sur l'hôte pour pouvoir y accéder. Une fois que vous faites cela (et tant que vous êtes à l'intérieur de eb ssh), l'autre personne peut

ssh [email protected]
111
Tal

Mon expérience d'août 2013 avec un client Linux et une installation simple d'AWS Beanstalk (instance EC2 unique) est la suivante (basé sur le wiki de communauté ci-dessus)

Configurer le groupe de sécurité

  1. Dans la console AWS, sélectionnez EC2 pour accéder au tableau de bord EC2.
  2. Découvrez le groupe de sécurité auquel appartient votre instance EC2 en cliquant sur Instances dans le panneau de gauche, puis en sélectionnant l'instance à laquelle vous souhaitez vous connecter (dans mon cas, il n'y en a qu'un - Environnement par défaut). Les détails sont affichés à la base de la page - Vous devriez voir un champ pour les groupes de sécurité - notez le nom - dans mon cas, "awsweb ...". 
  3. Dans le panneau de gauche, sélectionnez Groupes de sécurité.
  4. Sélectionnez le groupe de sécurité awsweb... et les détails devraient apparaître à la base de la page.
  5. Sélectionnez l'onglet Entrant et choisissez SSH dans le menu déroulant "Créer une nouvelle règle". Insérez l'adresse IP/CIDR de votre ordinateur local (à partir duquel vous souhaitez vous connecter), par exemple. 192.168.0.12/32 et cliquez sur Ajouter une règle et Appliquer les modifications à la règle.

Créer une paire de clés publique-privée

  1. Dans le tableau de bord EC2, sélectionnez Paires de clés dans le panneau de gauche.
  2. Cliquez sur Key Pair (paire) (en haut) et entrez un nom tel que myname-key-pair-myregion ou tout autre nom de clé valide de votre choix.
  3. Confirmez puis acceptez le téléchargement de la clé privée depuis le navigateur, en l'enregistrant par exemple dans votre répertoire personnel ou à tout autre endroit de votre choix. Assurez-vous que le répertoire n'a que des autorisations en écriture pour vous.

Associer la paire de clés privée publique au serveur Elastic Beanstalk EC2

  1. Pour ajouter une paire de clés publique-privée à une instance Elastic Beanstalk EC2 , Procédez comme suit: Services -> Elastic Beanstalk -> Mon application -> Par défaut Environnement vous renvoie à l'environnement par défaut (celui où vous téléchargez votre application)
  2. Cliquez sur Configuration (sur le panneau de gauche), puis sur l'engrenage/cog .__ associé à "Instances"
  3. Une page intitulée "Serveur" est affichée
  4. Sélectionnez votre paire de clés prédéfinie dans la paire de clés EC2 et sauvegardez.
  5. Un message d’avertissement s’affiche alors ré-enregistrez.

Connectez-vous à l'instance AWS EC2 à l'aide de SSH

  1. Dans une session de terminal, accédez au répertoire contenant votre clé privée (fichier .pem).
  2. Si vous en avez déjà fait plusieurs, vous devriez probablement faire quelque chose à propos de .ssh/known_hosts si vous en avez un, comme le renommer. Sinon, vous risquez de recevoir une erreur indiquant que l'identité de l'hôte a changé.
  3. Faites: ssh -i ./myname-key-pair-my-region.pem [email protected]

Bonne chance

44
mikemay

Il existe une option "Connexion" pratique dans le menu "Actions d'instance" pour l'instance EC2. Cela vous donnera la commande SSH exacte à exécuter avec l'URL correcte pour l'instance. Les instructions générales de Jabley sont correctes.

28
Peter

J'ai aussi joué avec cela.

  1. allez à l'onglet de votre service de haricot élastique
  2. sur la vue d'ensemble de votre application, passez à l'action -> modifier la configuration
  3. ajoutez le nom d'une clé tel qu'il apparaît dans votre onglet EC2 (pour la même région) à la boîte à clés existante et cliquez sur appliquer les modifications

Le service sera relancé alors faites un café pendant 5 minutes

Sur votre onglet ec2 de la même région, vous verrez votre nouvelle instance en cours d'exécution. xx-xxx-xx-xxx.compute-1.amazonaws.com

26
Ray Vahey

Les réponses ci-dessus sont un peu vieilles.

Commencez par créer une paire de clés, puis attachez-la à l'environnement Elastic Beanstalk.

Étapes pour créer une paire de clés

  1. Connexion à AWS
  2. Services -> EC2
  3. À gauche, sous RÉSEAU ET SÉCURITÉ, sélectionnez des paires de clés.
  4. Sélectionnez Créer une nouvelle paire de clés, tapez le nom de la clé, puis cliquez sur créer .. La clé sera automatiquement téléchargée sur votre système.

Étapes pour associer la paire de clés créée à l'environnement Elastic Beanstalk

  1. AWS -> Services -> Élastique Beanstalk

  2. Sélectionnez votre environnement et cliquez sur la configuration à gauche.

  3. Dans la vue d'ensemble de la configuration, sélectionnez Modifier dans Sécurité.

  4. Sous Autorisations d'ordinateur virtuel, sélectionnez la paire de clés que nous avons créée.

  5. Cliquez sur Enregistrer, puis sur Enregistrer la configuration.

Cela prendra un peu de temps pour refléter votre instance EC2.

13
singh30

Si vous utilisez une ligne de commande bean élastique et EB, utilisez simplement eb ssh pour vous connecter à une instance. Vous pouvez utiliser les options spécifiées dans le lien suivant http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html

9
Aditya Pandhare

Vous devez vous connecter directement à l'instance ec2 à l'aide de son adresse IP publique. Vous ne pouvez pas vous connecter en utilisant l’urlasticbeanstalk.

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 établie. Vous pouvez appeler eb ssh -o pour que le port reste ouvert une fois la session ssh terminée.

Avertissement: Vous devez savoir que le haricot é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.

3
Siddharth Sharma

La direction pour définir la paire de clés pour une instance ElasticBeanstalk ec2 avec l'interface utilisateur actuelle est la suivante: Avertissement: Ceci nécessitera une mise à jour des instances EC2 dans votre application ElasticBeanstalk. Remarque: Vous devez avoir préalablement créé une paire de clés dans le tableau de bord EC2.

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 configuration 'Instances'. box . 5) Ceci vous mènera à une page intitulée «Serveur», où vous pourrez 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 qu'il est probable qu'elles se trouvent toutes dans la même région que la paire de clés).

2
adamjk

Je suis venu ici à la recherche d'un moyen d'ajouter une clé à une instance créée par Beanstalk lors du provisionnement (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.

0
Maikon

Selon la configuration de votre environnement, il se peut que vous n'ayez pas d'adresse IP publique sur l'instance EC2 créée pour votre environnement. Vous pouvez vérifier par:

  1. Aller à la Console EC2
  2. Recherchez votre instance et vérifiez l'onglet Description
  3. S'il n'y a pas d'IP publique ... 
  4. Cliquez IP élastiques dans la barre de navigation
  5. Cliquez sur Attribuer une nouvelle adresse
  6. Choisissez Amazon pour le pool
  7. Cliquez Allocate

Enfin, sélectionnez votre nouvel EIP et choisissez Adresse associée dans le menu Actions. Associez cette adresse 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.

0
Matthew Carriere