Подтвердить что ты не робот

Запуск экземпляра EC2 внезапно отказывается от SSH-соединения

Я установил экземпляр EC2 пару дней назад, и даже вчера вечером я смог без проблем справиться с SSH. Сегодня утром я не могу сШ. Порт 22 уже открыт в группе безопасности, и я ничего не менял с прошлой ночи.

Ошибка:

ssh: connect to host [ip address] port 22: Connection refused

Недавно у меня была аналогичная проблема, и я не мог понять, почему это происходит, поэтому мне пришлось создать новый экземпляр, настроить его снова и подключить и настроить все хранилища EBS на новый. Взял меня пару часов... и теперь это происходит снова. В предыдущем я установил denyhost, который мог заблокировать меня, но в текущем, есть только apache2 и mysql.

Текущий экземпляр работает уже 16 часов, поэтому я не думаю, что он не закончил загрузку... Кроме того, порт 22 открыт для всех источников (0.0.0.0/0) и использует протокол tcp.

Любые идеи?

Спасибо.

4b9b3361

Ответ 1

С помощью @abhi.gupta200297 мы смогли его решить.

Проблема заключалась в ошибке в /etc/fstab, и sshd должен был быть запущен после fstab. Но это было не так, поэтому sshd не запускался и почему он отказывался от связи. Решением было создать временный экземпляр, установить корневую EBS из исходного экземпляра и прокомментировать материал из fstab и voila, что позволит мне снова подключиться. И в будущем я просто прекратил использовать fstab и создал кучу команд оболочки для монтирования томов EBS в каталоги и добавил их в файл /etc/init.d/ebs-init-mount, а затем запустил update-rc.d ebs-init-mount defaults для инициализации файла, и я больше не имею проблемы с заблокированным ssh.

ОБНОВЛЕНИЕ 4/23/2015

Команда Amazon создала видео-учебник по аналогичной проблеме и покажет, как отлаживать этот метод: https://www.youtube.com/watch?v=_P29ZHu_feU

Ответ 2

Похоже, что sshd по какой-то причине остановился. Поддерживается ли экземпляр EBS? если это так, попробуйте отключить его и начать его резервное копирование. Это должно решить проблему.

Кроме того, вы можете ssh с веб-консоли AWS? У них есть java-плагин для ssh в экземпляр.

Ответ 3

Для тех из вас, кто столкнулся с этим сообщением, потому что вы не можете SSH в свой экземпляр EC2 после перезагрузки, это перекрестно размещено до аналогичный вопрос на serverfault:

Из сообщение форума разработчиков AWS в этом разделе:

Попробуйте остановить сломанный экземпляр, отсоединив том EBS и прикрепляя его как дополнительный том к другому экземпляру. Как только вы смонтированный сломанный объем где-то на другом экземпляре, проверьте /etc/sshd _config (внизу). У меня было несколько экземпляров RHEL где Юм зачеркнул sshd_config, вставив повторяющиеся строки в что вызвало отказ sshd при запуске из-за синтаксических ошибок.

Как только вы его исправили, просто отключите громкость, отсоедините, снова подключите ваш другой экземпляр и запустите его снова.

Позвольте сломать это, со ссылками на документацию AWS:

Ответ 4

Это произошло со мной в экземпляре Red Hat EC2, потому что эти две строки автоматически добавляли конец файла /etc/ssh/sshd _config каждый раз, когда я запускал свой экземпляр:

PermitRootLogin без пароля
UseDNS no

Одна из этих операций добавления была выполнена без разрыва строки, поэтому хвост файла sshd_config выглядел следующим образом:

PermitRootLogin без пароля
UseDNS noPermitRootLogin без пароля
UseDNS no

Это вызвало отказ sshd при следующем запуске. Я думаю, что это было вызвано сообщением об ошибке: https://bugzilla.redhat.com/show_bug.cgi?id=956531 Решение заключалось в том, чтобы удалить все дубликаты записей в нижней части файла sshd_config, и добавьте дополнительные разрывы строк в конце.

Ответ 5

Перейдите в консоль управления AWS > выберите экземпляp > щелкните правой кнопкой мыши и выберите "Получить системные журналы", В этом будет указано, что пошло не так.

Ответ 6

Я получил аналогичный ssh, заблокированный отсоединением EBS, но забыл изменить/etc/fstab

Ответ 7

Была та же проблема, но у системных журналов было это:

Запуск sshd: /var/empty/sshd должен принадлежать пользователю root, а не групповой или доступной для записи. [НЕ УДАЛОСЬ]

Для отсоединения тома и подключения к подключаемому экземпляру использовались те же действия, что описаны выше. Затем использовали:

sudo chmod 755/var/empty/sshd

sudo chown root: root/var/empty/sshd

(https://support.microsoft.com/en-us/help/4092816/ssh-fails-because-var-empty-sshd-is-not-owned-by-root-and-is-not-group)

Затем отсоединился и снова подключился к исходному экземпляру EC2 и теперь мог получить доступ через ssh.

Ответ 8

Если в вашей Ubuntu есть systemd, вы можете отредактировать /lib/systemd/system/local-fs.target и закомментировать последние две строки:

#OnFailure=emergency.target
#OnFailureJobMode=replace-irreversibly

Я не проверял это подробно и не знаю, есть ли какие-либо риски или побочные эффекты, но пока он работает как шарм. Он монтирует корневой том и все остальные тома (за исключением явно неправильно настроенных), затем продолжает процесс загрузки до тех пор, пока не активируется SSH, поэтому вы можете подключиться к экземпляру и исправить неправильные записи fstab.