Добавление к авторизованным ключам через пользовательские данные экземпляра AWS EC2 - PullRequest
0 голосов
/ 02 мая 2018

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

Я понял, что могу добавить эти ключи обратно через пользовательские данные экземпляра AWS EC2. Однако пока мне не повезло с этим. Я остановил свой экземпляр, добавил следующее к данным пользователя и снова запустил:

#!/bin/bash
> /home/myUser/.ssh/authorized_keys
echo "ssh-rsa aaa/bbb/ccc/ddd/etc== mykeypair" >> /home/myUser/.ssh/authorized_keys
chown myUser:myUser /home/myUser/.ssh/authorized_keys
chmod 600 /home/myUser/.ssh/authorized_keys

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

Однако мой закрытый ключ все еще отклоняется.

Я знаю, что ключи верны, поэтому это должно быть связано с пользовательскими данными моего экземпляра. Я также попытался добавить 'sudo' ко всем командам.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Попробуйте использовать директивы cloud-init вместо оболочки

#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
  - name: example_user
    groups: [ wheel ]
    sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
    shell: /bin/bash
    ssh-authorized-keys: 
    - ssh-rsa AAAAB3Nz<your public key>...

Поведение по умолчанию выполняется один раз за экземпляр. Однако эти Инструкции добавить ключ при каждой перезагрузке или перезапуске экземпляра. Если пользовательские данные удалены, функциональность по умолчанию восстанавливается. Эти инструкции предназначены для использования во всех дистрибутивах ОС, которые поддерживают директивы cloud-init.

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-user-account-cloud-init-user-data/

0 голосов
/ 02 мая 2018

Из официальных документов:

По умолчанию пользовательские данные и директивы cloud-init запускаются только во время первый цикл загрузки при запуске экземпляра. Тем не менее, AWS Marketplace поставщики и владельцы сторонних AMI, возможно, сделали свои собственные настройки того, как и когда запускаются сценарии.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

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

Решение: вы можете отсоединить свой том EBS, подключить его к экземпляру EC2, к которому вы можете подключиться, смонтировать том, исправить authorized_keys, а затем подключить том обратно к уязвимому экземпляру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...