it-swarm.com.ru

SSH к экземпляру Elastic Beanstalk

Я только что подписался на новое предложение Amazon Elastic Beanstalk. То, что я не могу понять, это как SSH к экземпляру Beanstalk. У меня нет личного ключа, потому что Beanstalk сгенерировал экземпляр от моего имени.

256
Benno Waldmann

Я обнаружил, что это двухэтапный процесс. Это предполагает, что вы уже настроили пару ключей для доступа к экземплярам EC2 в соответствующем регионе.

Настроить группу безопасности

  1. В консоли AWS откройте вкладку EC2.
  2. Выберите соответствующий регион и нажмите на группу безопасности.
  3. У вас должна быть группа безопасности elasticbeanstalk-default, если вы запустили экземпляр Elastic Beanstalk в этом регионе.
  4. Отредактируйте группу безопасности, чтобы добавить правило для доступа SSH. Ниже будет заблокировано, чтобы разрешить вход только с определенного IP-адреса.

    SSH | tcp | 22 | 22 | 192.168.1.1/32
    

Настройте среду вашего приложения Elastic Beanstalk

  1. Если вы еще не создали пару ключей, создайте ее, щелкнув Пары ключей под группой безопасности на вкладке ec2.
  2. В консоли AWS откройте вкладку Elastic Beanstalk.
  3. Выберите соответствующий регион.
  4. Выберите соответствующую среду
  5. Выберите Конфигурации в левой панели.
  6. Выберите Экземпляры.
  7. В разделе «Пара ключей EC2:» выберите имя своей пары ключей в поле Existing Key Pair

После повторного запуска экземпляра необходимо получить имя хоста на вкладке экземпляров AWS Console EC2 или через API. После этого вы сможете использовать ssh на сервере.

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

Примечание: Для добавления пары ключей в конфигурацию среды защита от прерывания экземпляров должна быть отключена, так как Beanstalk попытается завершить текущие экземпляры и запустить новые экземпляры с помощью KeyPair. 

Примечание. Если что-то не работает, откройте вкладку «События» в приложении/среде Beanstalk и выясните, что пошло не так.

415
jabley

Elastic beanstalk CLI v3 теперь поддерживает прямой SSH с помощью команды eb ssh. Например.

eb ssh your-environment-name

Нет необходимости в том, чтобы настраивать группы безопасности для определения адреса экземпляра EC2.

Есть также этот крутой трюк: 

eb ssh --force

Это временно заставит порт 22 открыться до 0.0.0.0 и будет держать его открытым до тех пор, пока вы не будете exit. Это смешивает немного преимуществ топ-ответа, без хлопот. Вы можете временно предоставить кому-то, кроме вас, доступ для отладки и еще много чего. Конечно, вам все равно нужно загрузить их открытый ключ на хост, чтобы у них был доступ. Как только вы это сделаете (и пока вы находитесь внутри eb ssh), другой человек может

ssh [email protected]
111
Tal

Мой опыт работы в августе 2013 года с клиентом linux и простой установкой AWS Beanstalk (один экземпляр EC2) выглядит следующим образом (на основе Вики сообщества выше)

Настроить группу безопасности

  1. В консоли AWS выберите EC2, чтобы перейти на панель мониторинга EC2.
  2. Найдите группу безопасности, к которой принадлежит ваш экземпляр EC2, щелкнув Экземпляры на левой панели, а затем выбрав экземпляр, к которому вы хотите подключиться (в моем случае существует только один - Среда по умолчанию). Подробности показаны в нижней части страницы - вы должны увидеть поле для групп безопасности - запишите имя - в моем случае "awsweb ...". 
  3. На левой панели выберите Группы безопасности.
  4. Выберите группу безопасности awsweb... и детали должны отображаться в нижней части страницы.
  5. Выберите вкладку «Входящие» и выберите SSH из выпадающего списка «Создать новое правило». Вставьте IP-адрес/CIDR вашего локального компьютера (с которого вы собираетесь подключаться), например, 192.168.0.12/32 и нажмите Добавить правило и Применить изменения правила.

Создать пару открытый и закрытый ключ

  1. На панели инструментов EC2 выберите Key Pairs на левой панели.
  2. Нажмите Key Pair (вверху) и введите имя, например myname-key-pair-myregion или любое другое действительное имя ключа, которое вам нравится.
  3. Подтвердите, а затем примите загрузку закрытого ключа из браузера, сохранив его, например, в своем домашнем каталоге или где угодно. Убедитесь, что каталог имеет только права на запись для вас.

Свяжите пару открытых закрытых ключей с сервером Elastic Beanstalk EC2

  1. Чтобы добавить пару открытый-закрытый ключ к экземпляру Elastic Beanstalk EC2 Выполните: Services -> Elastic Beanstalk -> My App -> Default Среда перенесет вас в среду по умолчанию (ту, в которую вы Загружаете). ваше приложение)
  2. Нажмите Конфигурация (на левой панели), а затем на шестерне/зубце , Связанной с «Экземплярами».
  3. Страница под названием «Сервер» отображается
  4. Выберите предварительно настроенный ключ из пары ключей EC2 и сохраните
  5. Появится предупреждающее сообщение, поэтому снова сохраните.

Подключение к экземпляру AWS EC2 с использованием SSH

  1. В терминальной сессии перейдите в каталог, содержащий ваш закрытый ключ (файл .pem).
  2. Если у вас было несколько попыток, вам, вероятно, следует что-то делать с .ssh/known_hosts, если у вас есть такая, как переименование. В противном случае вы можете получить ошибку об изменении личности Хоста.
  3. Делайте: ssh -i ./myname-key-pair-my-region.pem [email protected]

Удачи

44
mikemay

В меню «Действия с экземпляром» имеется удобный параметр «Подключиться» для экземпляра EC2. Это даст вам точную команду SSH для выполнения с правильным URL для экземпляра. Общие инструкции Jabley верны.

28
Peter

Я тоже играл с этим.

  1. перейдите на вкладку службы эластичного бобового стебля
  2. в обзоре приложения перейдите к действию -> изменить конфигурацию
  3. добавьте название ключа, как оно отображается на вкладке EC2 (для того же региона), в существующее поле пары ключей и нажмите «Применить изменения».

Услуга будет возобновлена, так что приготовьте кофе за 5 минут

На вкладке ec2 для того же региона вы увидите новый запущенный экземпляр . Ssh с общедоступным именем dns как ec2-пользователь, используя ключ, добавленный в 3 .__, например Ssh ec2-user @ ec2- xx-xxx-xx-xxx.compute-1.amazonaws.com

26
Ray Vahey

Приведенные выше ответы устарели.

Сначала создайте пару ключей, а затем присоедините ее к среде Elastic Beanstalk.

Шаги для создания пары ключей

  1. Войти в AWS
  2. Услуги -> EC2
  3. Слева под NETWORK & SECURITY выберите пары ключей
  4. Выберите «Создать новую пару ключей», введите имя ключа и нажмите «Создать ...». Ключ будет автоматически загружен в вашу систему.

Действия по присоединению созданной пары ключей к среде Elastic Beanstalk

  1. AWS -> Услуги -> Эластичный бобовый стебель

  2. Выберите вашу среду и нажмите на конфигурацию слева.

  3. В обзоре конфигурации выберите изменить в разделе «Безопасность».

  4. В разделе Разрешения виртуальной машины выберите созданную нами пару ключей.

  5. Нажмите на сохранить, а затем на сохранить конфигурацию.

Это займет некоторое время, чтобы отразить ваш экземпляр EC2.

13
singh30

Если вы используете эластичный бин и EB CLI, просто используйте eb ssh для входа в систему. Вы можете использовать параметры, указанные в следующей ссылке http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html

9
Aditya Pandhare

Вам необходимо подключиться к экземпляру ec2 напрямую, используя его публичный IP-адрес. Вы не можете подключиться, используя URL-адрес эластичного боба.

Вы можете найти IP-адрес экземпляра, посмотрев его в консоли ec2.

Вы также должны убедиться, что порт 22 открыт. По умолчанию EB CLI закрывает порт 22 после завершения соединения ssh. Вы можете вызвать eb ssh -o, чтобы оставить порт открытым после завершения сеанса ssh.

Предупреждение: вы должны знать, что эластичный бобовый стебель может заменить ваш экземпляр в любое время. Состояние не гарантируется ни в одном из ваших случаев эластичного бобового стебля. Вероятно, лучше использовать ssh только для тестирования и отладки, так как все, что вы изменяете, может исчезнуть в любое время.

3
Siddharth Sharma

Направление установки пары ключей для экземпляра ElasticBeanstalk ec2 с текущим пользовательским интерфейсом: Предупреждение. Для этого потребуется обновить экземпляры EC2 в приложении ElasticBeanstalk. Примечание. Перед этим вам необходимо создать пару ключей на панели инструментов EC2.

1) В AWS Dashboard выберите сервис ElasticBeanstalk 2) Выберите приложение, которое вы хотите использовать . 3) Выберите «Конфигурация» 4) Выберите значок шестеренки (настройки) в конфигурации «Экземпляры» box . 5) Вы попадете на страницу под названием «Сервер», где вы можете обновить раскрывающееся поле «Пара ключей EC2», указав желаемую пару ключей, и выбрать «Сохранить».

Следует отметить, что это может не работать для приложений с несколькими экземплярами (но я полагаю, что, скорее всего, они все находятся в одном регионе с парой ключей).

2
adamjk

Я пришел сюда в поисках способа добавить ключ к экземпляру, который Beanstalk создает во время предоставления (мы используем Terraform). Вы можете сделать следующее в Terraform:

resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
   ... 
   setting {
      namespace = "aws:autoscaling:launchconfiguration"
      name      = "EC2KeyName"
      value     = "${aws_key_pair.your-ssh-key.key_name}"
   }
   ...
}

Затем вы можете использовать этот ключ для SSH в поле.

0
Maikon

В зависимости от конфигурации среды у вас может не быть общедоступного IP-адреса в экземпляре EC2, который был создан для вашей среды. Вы можете проверить по:

  1. Перейти к Консоль EC2
  2. Найдите свой экземпляр и проверьте вкладку Description
  3. Если нет публичного IP ... 
  4. Нажмите Эластичные IP-адреса в Навигации
  5. Нажмите выделить новый адрес
  6. Выберите Amazon для пула
  7. Нажмите выделить

Наконец, выберите ваш новый EIP и выберите Associate address в меню действий. Свяжите этот IP с вашим экземпляром EC2. Вы должны быть в состоянии подключиться, используя eb ssh сейчас. 

Вы можете сбросить информацию о соединении, запустив eb ssh --setup.

0
Matthew Carriere