233

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

Спасибо, Бенно

+0

Итак, как только я, наконец, войду в систему, как мне добраться до папки, где Im нажимает мой git-репо? – Evolve

+2

Ну, если вы используете новый v3 ELB CLI, вы можете сделать 'eb ssh' –

+0

Похоже, что приведенные выше ответы несколько устарели. У Amazon есть хороший документ о том, как это сделать сейчас. Следуйте приведенным выше рекомендациям о том, как создать пару ключей. Затем выполните следующие действия:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.ec2connect.html Удачи! –

ответ

26

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

  1. Гото ваша упругая вкладка Beanstalk службы
  2. на прикладных действия Обзора Гото -> изменение конфигурация
  3. добавить имя ключа, как он появляется на вкладке EC2 (для того же регион) к существующее KeyPair поля и нажмите применить изменения

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

на вкладке ec2 для одной и той же области вы увидите свой новый ход пример. ssh для публичного имени DNS как пользователя ec2 с использованием ключа, добавленного в 3 , например. ssh [email protected]

+5

Добавление части «ec2-user» было моей проблемой ... Это должно быть объединено с ответом выше;). –

381

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

Group Настройка безопасности

  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 откройте вкладку «Эластичная фасоль».
  3. Выберите нужный регион.
  4. Выберите подходящую окружающую среду
  5. Выберите «Конфигурации» в левой панели.
  6. Выберите экземпляры.
  7. В разделе «Клавиша EC2:» выберите название вашей ключевой пары в поле Existing Key Pair.

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

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

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

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

+26

Этот ответ имеет в 2 раза больше голосов, чем любой другой ответ; технически строгий; и предельно ясно. Что с этим не так? Почему это не принято? –

+4

Если вы получили сообщение об ошибке «Permission denied (publickey)», даже если вы выполнили приведенные выше инструкции, следующее может объяснить, почему: Если ваша настройка EB запускает более одного экземпляра EC2, вы должны проверить, какая из них получает связанную пару ключей с этим. Вы можете использовать только SSH для экземпляра с помощью пары ключей. Вы можете проверить свойства в меню экземпляра EC2, чтобы узнать. –

+0

После настройки моего приложения Beanstalk для включения пары ключей из EC2 он сказал: «*** Изменения в параметрах EC2KeyName не вступят в силу немедленно. Каждый из существующих экземпляров EC2 будет заменен, и ваши новые настройки вступят в силу тогда. ** «...... Однако, я не вижу, чтобы какой-либо из моих экземпляров EC2 изменился ..... ждал около 10 минут. Состояние экземпляров EC2 все еще находится на сигнале «Зеленый бег». Я несколько раз обновлял экземпляры, но значение «Key Pair Name» по-прежнему остается пустым. Ждал около 10 минут .... Я что-то пропустил? –

28

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

+3

Это должно иметь больше голосов. Самый простой способ добиться успеха. –

40

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

Настройка безопасности

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

Создать Государственно-частное пару ключей

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

Свяжите Public Private Key Pair с сервером Elastic Beanstalk EC2

  1. Для добавления пары открытый-закрытый ключ к экземпляру Elastic Beanstalk EC2 сделать: Услуги -> Elastic Beanstalk -> My App -> по умолчанию окружающей среды приведет вас к окружающей среде по умолчанию (тот, где вы загрузить приложение)
  2. Нажмите Configuration (на левой панели), а затем на шестерню/зубчатое , связанные с «экземплярами»
  3. Отображается страница, озаглавленная «Сервер»
  4. Выберите ваш предварительно сформированный ключевой парад из EC2 Key Pair и сделайте Save
  5. Отображается некорректное сообщение, поэтому снова сохраняйте Save.

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

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

Успехов

+2

Для команды ssh вам нужно будет указать файл закрытого ключа (.pem) и имя_пользователя @ public_dns_name. Для Amazon Linux по умолчанию используется имя пользователя ec2. Для RHEL5 имя пользователя часто является root, но может быть ec2-пользователем. Для Ubuntu имя пользователя ubuntu. Для SUSE Linux имя пользователя - root. В противном случае обратитесь к поставщику AMI. (кредит: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) – yacc

+0

Этот вопрос имеет лучшее объяснение для добавления пары пар ключей. Но мне нравилось использовать eb-cli для работы с SSH, поскольку это проще. Тем не менее, я тоже поддержал это. – Omid

-2

Я также столкнулся с той же проблемой некоторое время назад. Я хотел использовать файл ключа, но Amazon говорит где-то, что вы не можете добавить ключевой файл на существующий сервер EC2. Для первого приложения Beanstalk Amazon предварительно настроит приложение для вас. Вам нужно создать новое приложение, и вы можете настроить сервер EC2, который запускает приложение Beanstalk, для использования старого файла pem (ppk при использовании Putty), или вы можете создать новый. Теперь вы должны быть в состоянии SSH.

enter image description here

Затем настроить, затем удалить старые приложения.

+3

Это неправильно. Вы можете добавить ключевой файл в существующее приложение beanstalk. Он убьет/восстановит себя. Вам не нужно удалять/создавать приложения самостоятельно. – Nate

2

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

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

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

94

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] 
+2

Я только что установил CLI v3 и прекрасно работает. Чтобы добавить, вы можете указать среду, добавив ее в команду, например, 'eb ssh production'. Вы также можете настроить определенную среду с помощью параметра настройки: 'eb ssh production --setup' – jmera

+5

Это должен быть принятый ответ. CLI v3 делает вещи намного проще. – jamix

+1

Я согласен, что это должен быть выбранный ответ. Большое спасибо, Тал! – wyzkid207

3

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

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

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

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