Назад | Перейти на главную страницу

Проблема с тайм-аутом ssh при подключении к экземпляру EC2 в OS X

Я новичок в AWS и не специалист по сетям, но мне интересно узнать об этом больше.

Я создал VPC только с публичной подсетью. Затем я создал экземпляр EC2, используя 64-разрядный образ pv AMI Ubuntu 14.04 (ami-e84d8480), а также сгенерировал пару ключей, необходимую для подключения к нему через ssh.

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

Вот мои попытки ввода и журнал отладки:

Работает на OS X 10.9.4

user$ ssh -vvv -i key.pem ubuntu@xxx.xxx.xxx.xxx
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to xxx.xxx.xxx.xxx [xxx.xxx.xxx.xxx] port 22.
debug1: connect to address xxx.xxx.xxx.xxx port 22: Operation timed out
ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out

Чтобы попытаться решить проблему:

  1. Я включил порт SSH.
  2. Пробовал разные имена пользователей, кроме ubuntu, например ec2-user и root.
  3. Изначально установите правило входящего ssh в группе безопасности для подключения только к моему IP-адресу. Когда это не сработало, я изменил его, чтобы разрешить подключение любого IP-адреса.

Но эти действия не устранили проблему.

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

  1. Мой файл etc / ssh_config может препятствовать установлению соединения.
  2. Возможно, я пропустил важную сетевую деталь при настройке VPC.
  3. У меня не указан публичный IP-адрес для экземпляра. Я подключаюсь через частный IP-адрес.

Мои вопросы к сообществу:

  1. Неправильно ли я подключился к экземпляру через частный IP-адрес? если да, мне нужно указать общедоступный IP-адрес для подключения или какой-либо другой метод?

После более внимательного прочтения документации VPC, мой первый экземпляр EC2 подключен.

Вот что я ошибся при настройке экземпляра EC2 и VPC.

Имея только частный IP-адрес, моя машина разработки никогда не сможет подключиться к экземпляру EC2, если она не является частью сети VPC. Поэтому, чтобы поговорить с ним извне, мне нужно было указать, что для каждого созданного экземпляра также должен быть назначен связанный общедоступный IP-адрес.

Вот что сделали, чтобы это исправить:

  1. Поправьте меня, если я ошибаюсь, но похоже, что в консоли браузера EC2 не было возможности назначить общедоступный IP-адрес для уже созданного экземпляра, поэтому я удалил его.

  2. Я хочу вернуться к консоли VPC и перейти к параметру подсетей. Затем я выбрал общедоступную подсеть, которая была изначально создана в мастере VPC и указана в параметре «Изменить автоматическое назначение общедоступного IP-адреса», чтобы включить автоматическое назначение общедоступного IP-адреса для каждого нового созданного экземпляра EC2.

  3. Создайте новый экземпляр EC2, и ему будет назначен новый общедоступный IP-адрес.

  4. Последовал указаниям Amazon по ssh, и связь была успешно инициирована.

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

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

Существует некоторая потенциальная разница в ценах, если вы решите использовать эластичный IP-адрес, см. Страница цен Amazon.

Я обнаружил, что его настройка и использование в качестве IP-адреса записи DNS работает лучше, чем использование общедоступного IP-адреса, назначенного Amazon.