Можно ли создать более одного закрытого ключа для SSH в экземпляре EC2? Что для этого лучше всего? У нас есть несколько пользователей, которым нужно подключиться к серверам по SSH, и распространение одного ключа просто не работает. Это не позволяет нам лишать пользователей возможности подключаться к серверу по SSH, если мы не изменим ключ и не распространим.
Вы также можете использовать стандартные механизмы ssh. Лучшим подходом было бы, если бы пользователь запустил на своей машине ssh-keygen
чтобы сгенерировать свою пару ключей. Затем они отправят вам ~/.ssh/id_rsa.pub
(или id_dsa.pub, в зависимости от выбранного алгоритма), и вы добавляете его содержимое в .ssh/authorized_keys
на целевом хосте в домашнем каталоге учетной записи пользователя, к которой они должны иметь доступ. В файле может быть более одного ключа. По одному на строку. И все! Один и тот же открытый ключ (id_rsa.pub) можно использовать на любом количестве хостов - он всегда будет идентифицировать пользователя.
Вы также можете сделать это иначе - вы запустите ssh-keygen и отправите пользователю ~ / .ssh / id_rsa (или id_dsa). И пользователь сохраняет файл в ~ / .ssh / id_rsa. Просто не забудьте изменить права доступа на 600 (-rw -------) этого файла, иначе ssh не примет его. Очевидно, это менее безопасно, поскольку закрытый ключ, вероятно, распространяется по электронной почте.
Это также можно сделать в PuTTY с помощью PuTTYgen.
Абсолютно; вы просто помещаете все соответствующие открытые ключи в образ, и все будет в порядке. Я предпочитаю использовать систему управления конфигурацией для управления ключами SSH; Таким образом, довольно просто отозвать доступ пользователя даже в работающей системе. Есть также гораздо больше ... скажем так, "творческих" ... способов справиться с этим, таких как хранение всех ваших ключей SSH в LDAP, которые централизуют ключи SSH, как и любые другие учетные данные.
Более простой способ показан ниже.
Для пользователей Linux / Mac:
Для создания открытого и закрытого ключей используйте следующую команду: $ ssh-keygen -t rsa -b 4096
Загрузите открытый ключ в папку в вашей корзине S3. Например : S3> MyBucket> Keypair
Сохраните и защитите свой закрытый ключ.
Для пользователей Windows:
Следующие шаги важны во время запуска любого 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
Эта установка создает Пользователь1 и Пользователь2 и добавляет их в судо пользователей. В aws s3 cp команда копирует открытые ключи пользователей из папки S3 в их .ssh/authorized_keys path
. Последний раздел предназначен для запуска команд от имени администратора без использования паролей.
Здесь можно порекомендовать множество улучшений безопасности. Хотя это не используется явно в этом примере, ограничение доступа к сегменту S3 конкретным сегментом и знание последствий отключения использования пароля в sudo для безопасности - это несколько вещей, которые можно выделить. Используйте их с умом, исходя из ваших конкретных потребностей.