Answers:
绝对; 您只需将所有相关的公共密钥放入图像中,就可以使用了。我更喜欢使用配置管理系统来管理SSH密钥;这样,即使在正在运行的系统上,撤消用户的访问权限也相当简单。还有更多……让我们说“富有想象力的”……处理此问题的方式,例如将所有SSH密钥存储在LDAP中,可以像其他任何凭证一样集中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将不会接受它。这显然不太安全,因为私钥可能是通过电子邮件分发的。
也可以使用PuTTYgen在PuTTY中完成此操作。
一种更简单的方法如下所示。
对于Linux / Mac用户:
要创建公钥和私钥,请使用以下命令:
$ ssh-keygen -t rsa -b 4096
将公钥上传到S3存储桶中的文件夹。例如:S3> MyBucket>密钥对
保存并保护您的私钥。
对于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
此设置创建User1和User2并将它们添加到sudo用户。在AWS S3的cp命令将用户从S3文件夹到他们的公钥.ssh/authorized_keys path
。最后一部分是以管理员身份运行命令而无需密码。
在这里可以建议许多安全性改进。尽管在此示例中未明确使用,但将S3存储桶访问限制为特定存储桶,并了解禁用sudo中的密码使用所带来的安全隐患,以下是需要强调的几件事。根据您的特定需求明智地使用它们。