Если 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
--//
- Заменить
additional-user
с именем пользователя ваш выбор
- Замените все, что находится внутри двойных кавычек, с содержимым, которое вы только что сгенерировали.
Затем вы должны иметь возможность 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
Я полагаю, вы имеете в виду 443, а не 442? SSH использует порт 22 по умолчанию, он включен? – David