是否可以创build多个私钥来SSH到EC2实例中? 这是什么一般的最佳做法? 我们有多个用户需要通过SSH连接到服务器,而分配一个密钥却不能正常工作。 这不允许我们删除用户不能SSH到服务器,除非我们改变密钥和重新分配。
绝对; 你只需将所有相关的公钥放在图像中,你就应该是正确的了。 我更喜欢使用configurationpipe理系统来pipe理SSH密钥; 这样,即使在运行系统上,撤销用户的访问也是相当简单的。 还有更多…让我们说“想像力”…处理这个问题的方法,比如将所有的SSH密钥存储在LDAP中,像任何其他证书一样集中SSH密钥。
你也可以使用标准的ssh机制。 最好的方法是如果用户在他们的机器上运行ssh-keygen
来生成他/她的密钥对。 然后,他们会发送~/.ssh/id_rsa.pub
(或id_dsa.pub,取决于所选algorithm),并将其内容添加到用户帐户的主目录中的目标主机上的.ssh/authorized_keys
应该可以访问。 文件中可以有多个键。 每行一个。 就这些! 相同的公钥(id_rsa.pub)可以在任何数量的主机上使用 – 它将始终标识用户。
你也可以用其他方法做 – 你运行ssh-keygen并把〜/ .ssh / id_rsa(或id_dsa)发布给用户。 用户将文件保存到〜/ .ssh / id_rsa。 只需要记住将权限更改为600(-rw ——-)的文件,否则ssh将不会接受它。 这显然不太安全,因为私钥可能是通过电子邮件分发的。
PuTTY也可以用PuTTYgen完成。
更简单的方法如下所示。
对于Linux / Mac用户:
要创build公钥和私钥,请使用以下命令: $ ssh-keygen -t rsa -b 4096
将公钥上传到S3存储桶中的文件夹。 例如: S3> MyBucket> Keypair
保存并保护您的私钥。
对于Windows用户:
在启动任何Linux AMI期间,以下步骤都很重要。
确保IAMangular色具有使用AmazonS3FullAccess策略创build的angular色。 这允许实例承担访问S3存储桶的angular色。 这需要从S3中读取公钥并将其复制到用户configuration文件中
在configuration实例详细信息>高级详细信息(作为文本)中的用户数据部分下添加以下代码:
#!/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
这个设置创buildUser1和User2 ,并将它们添加到sudo用户。 aws s3 cp命令将用户公钥从S3文件夹复制到他们的.ssh/authorized_keys path
。 最后一节是以pipe理员身份运行命令,而不需要密码。
有很多安全性改进可以在这里推荐。 虽然在这个例子中没有明确使用,但是将S3存储桶的访问限制在一个特定的桶中,并且知道在sudo中禁用密码使用的安全含义,这些都是可以突出显示的东西。 根据您的特殊需求明智地使用它们。