Более простой способ, как показано ниже.
Для пользователей Linux / Mac:
Для создания открытых и закрытых ключей используйте следующую команду:
$ ssh-keygen -t rsa -b 4096
Загрузите открытый ключ в папку в вашей корзине S3. Например: S3> MyBucket> Keypair
Сохраните и защитите свой закрытый ключ.
Для пользователей Windows:
- Используйте puttygen для генерации ключей.
- Следуйте DigitalOcean для создания ключей SSH.
- Загрузите открытый ключ в S3> MyBucket> Keypair
- Сохраните и защитите свой закрытый ключ.
Следующие шаги важны при запуске любого Linux AMI.
Убедитесь, что роль IAM имеет роль, созданную с помощью политики AmazonS3FullAccess. Это позволяет экземпляру взять на себя роль для доступа к сегментам S3. Это необходимо для чтения открытых ключей из S3 и их копирования в профиль пользователя.
Добавьте следующий код в раздел пользовательских данных в разделе Настройка сведений об экземпляре> Дополнительные сведения (в виде текста):
#!/bin/bash
usermod user 1
usermod -aG wheel user1
mkdir /home/user1/.ssh/
aws s3 cp s3://MyBucket /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
useradd user2
usermod -aG wheel user2
mkdir /home/user2/.ssh/
aws s3 cp s3://MyBucket /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
sudo -i
echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
yum update -y
Эта настройка создает User1 и User2 и добавляет их пользователям sudo . Команда aws s3 cp копирует открытые ключи пользователей из папки S3 в их .ssh/authorized_keys path
. Последний раздел - запускать команды от имени администратора без необходимости ввода паролей.
Есть много улучшений безопасности, которые можно рекомендовать здесь. Хотя это явно не используется в этом примере, ограничение доступа к сегменту S3 определенным сегментом и знание последствий для безопасности при отключении использования пароля в sudo, - это несколько вещей, которые можно выделить. Используйте их с умом, исходя из ваших конкретных потребностей.