我试图组织开发人员如何通过SSH连接到我作为管理员启动的AWS实例。我在文档中注意到它说:
您需要为启动实例时指定的密钥对的.pem文件的完全限定路径。
这是否意味着只能通过SSH连接到已启动的实例?我想让实例继续运行,并让其他人能够通过SSH来安装软件和配置。
答案 0 :(得分:3)
以下是如何将新用户/开发人员添加到AMAZON EC2 linux实例并为他们提供唯一的SSH密钥访问权限:
假设您正在创建"用户":通过输入以下内容在您自己的计算机上创建密钥:
ssh -keygen -b 1024 -f user -t dsa
不要使用释义 - 只需按Enter键即可。 您现在应该编译两个文件:user和user.pub
chmod 600 user.pub
现在将公钥文件(user.pub)从您的计算机传输到服务器。例如,让我们使用/ tmp /目录。 现在使用具有root访问权限的帐户SSH进入您的服务器,您现在需要创建用户并创建必要的文件和所有权,以便您使用刚刚创建的密钥:
# sudo su (if needed)
# useradd -c "firstname lastname" user
# cd /home/user
# mkdir .ssh
# chmod 700 .ssh
# chown user:user .ssh
# cat /tmp/user.pub >> .ssh/authorized_keys
# chmod 600 .ssh/authorized_keys
# chown user:user .ssh/authorized_keys
完成此操作后,请退回到您自己的计算机,然后尝试使用您创建的新凭据和用户帐户进行SSH:
ssh -i user.pem user@ec2-your-instance-name.compute-1.amazonaws.com
答案 1 :(得分:0)
创建实例时,可以在启动时指定密钥。最终发生的事情是AWS获取与您创建的密钥对关联的公钥,并将其放入/home/ec2-user/.ssh /.//中的authorized_keys中。
因此,如果这是一次性的事情,您可以向需要访问的用户提供私钥(您在创建密钥时下载的.pem文件)。
如果这是一个持续的问题 - 即你将创建大量实例并且有许多不同的人需要访问它们 - 那么你需要一个更好的解决方案,但你必须弄清楚你的要求是什么是。
一些可能的解决方案是从用户获取公钥,将其添加到实例,然后从该实例创建AMI。使用该AMI启动未来的实例。您还可以将用户公钥放入S3,并创建一个脚本,在创建实例时将其拉下来。要么将它们添加到authorized_keys,要么创建单个用户。如果所有用户都拥有IAM帐户,您可以从IAM中提取用户密钥。或者您可以使用目录&配置您的实例以将其用于身份验证。
答案 2 :(得分:0)
设置用户管理的一种方法是
另一种方法是,在AWS中拥有一个基本图像,用户已使用authorized_keys中的公钥创建了用户。并使用此图像创建新实例。