2015-04-12 2 views
0

У меня есть экземпляр AWS micro, и у меня не было проблем с регистрацией в экземпляре с использованием пользователя ec2 до сих пор. Я изменил некоторые разрешения для пользователя ec2 (в основном удалил группу www, в которую он был добавлен, и снова добавил эту группу). Теперь я заблокирован из этого экземпляра. Ошибка я получаю:EC2 - Не удалось войти в систему с ec2-пользователем

Disconnected: Нет Поддерживаемые методы аутентификации доступны (сервер послал: ОткрытыйКлюч)

Я проверил следующее и кажется, что все на месте:

  1. Мой IP является обновлено в группах безопасности АМС
  2. Мой ключ (.ppk) то же самое, что я использую в течение нескольких месяцев
  3. Моя группа безопасности имеет 80 и 442 включен

Пожалуйста, помогите ... это действительно беспокоит меня большое время!

+0

Я полагаю, вы имеете в виду 443, а не 442? SSH использует порт 22 по умолчанию, он включен? – David

ответ

0

Вы получаете сообщение об ошибке в службе SSH, поэтому можете быть уверены, что это не проблема с брандмауэром.

Сложно знать, что вы сделали, но вы можете случайно получить доступ к файлу, в котором хранятся разрешенные открытые ключи ~/.ssh/authorized_keys. Этот файл работает только с очень ограниченными разрешениями.

Существует способ восстановления после этого, но он включает в себя несколько этапов.

  1. Запустить новый экземпляр, может быть микро, его можно будет немного остановиться.
  2. Остановите свой текущий экземпляр, отсоедините корневой том и присоедините его к новому экземпляру.
  3. Установите том, исправьте разрешения в файле authorized_keys.
  4. Отсоедините и отсоедините громкость, присоедините к оригинальному экземпляру.

Если все настроено правильно, ваш ключ должен снова работать на вашем существующем экземпляре.

+0

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

0

Не уверен, что вы видели это post с 9 месяцев, но похоже, что у кого-то была аналогичная проблема. Если вы используете IAM, убедитесь, что ваша встроенная политика имеет доступ к EC2.

0

Если ec2-user как-то поврежден, вы можете добавить дополнительного пользователя. Этот подход не требует установки громкости, но вместо этого использует модификацию User Data в консоли EC2.

См https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/

Например, вы можете создать новый ключ:

ssh-keygen -t rsa -C private.key -f private.key -q -N ""

Затем используйте следующие User Data:

Content-Type: multipart/mixed; boundary="//" 
MIME-Version: 1.0 

--// 
Content-Type: text/cloud-config; charset="us-ascii" 
MIME-Version: 1.0 
Content-Transfer-Encoding: 7bit 
Content-Disposition: attachment; filename="cloud-config.txt" 

#cloud-config 
cloud_final_modules: 
- [scripts-user, always] 

--// 
Content-Type: text/x-shellscript; charset="us-ascii" 
MIME-Version: 1.0 
Content-Transfer-Encoding: 7bit 
Content-Disposition: attachment; filename="userdata.txt" 

#!/bin/bash 
USER=additional-user # 1 
adduser $USER 
echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/cloud-init 
mkdir /home/$USER/.ssh 
echo "ssh-rsa AAAAB3NzaC1yc2EAAA....A38MHe0KAzY9Ob private.key" >> /home/$USER/.ssh/authorized_keys # 2 
--// 
  1. Заменить additional-user с именем пользователя ваш выбор
  2. Замените все, что находится внутри двойных кавычек, с содержимым, которое вы только что сгенерировали.

Затем вы должны иметь возможность SSH в экземпляр:

chmod 600 private.key 
ssh -i private.key [email protected]<ec2 public ip> 

Не забудьте очистить ваш User Data так, чтобы он не продолжает работать на последующих запусках. Также отключите дополнительного пользователя (или, по крайней мере, удалите его доступ к sudo), как только пользователь ec2 снова будет работать.

Более подробные инструкции см: https://bitbucket.org/thorntechnologies/sftpgateway-public/wiki/Locked%20out%20of%20EC2%20instance

Смежные вопросы