【发布时间】:2016-11-08 20:58:18
【问题描述】:
我试图组织开发人员如何通过 SSH 连接到我以管理员身份启动的 AWS 实例。我在文档中注意到它说:
您需要在启动实例时指定的密钥对的 .pem 文件的完全限定路径。
这是否意味着一个人只能通过 SSH 连接到一个已经启动的实例?我想让实例继续运行,让其他人能够通过 SSH 安装软件和配置。
【问题讨论】:
标签: amazon-web-services amazon-ec2
我试图组织开发人员如何通过 SSH 连接到我以管理员身份启动的 AWS 实例。我在文档中注意到它说:
您需要在启动实例时指定的密钥对的 .pem 文件的完全限定路径。
这是否意味着一个人只能通过 SSH 连接到一个已经启动的实例?我想让实例继续运行,让其他人能够通过 SSH 安装软件和配置。
【问题讨论】:
标签: amazon-web-services amazon-ec2
以下是向 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
【讨论】:
创建实例时,您可以在启动时指定密钥。最终发生的事情是 AWS 获取与您创建的密钥对关联的公钥,并将其放入 /home/ec2-user/.ssh/ 中的 authorized_keys 中。
因此,如果这是一次性的事情,您可以将私钥(您在创建密钥时下载的 .pem 文件)提供给需要访问权限的用户。
如果这是一个持续存在的问题 - 即您将创建大量实例并有很多不同的人需要访问它们 - 那么您需要一个更好的解决方案,但您必须弄清楚您的要求是。
一些潜在的解决方案是从您的用户那里获取公钥,将它们添加到一个实例,然后从该实例创建一个 AMI。使用该 AMI 启动未来的实例。您还可以将用户公钥放入 S3,并使用脚本在创建实例时将其拉下并将它们添加到 authorized_keys 或创建单个用户。如果您的所有用户都有 IAM 账户,您可以从 IAM 中提取用户密钥。或者您可以使用目录并配置您的实例以使用该目录进行身份验证。
【讨论】:
设置用户管理的一种方法是
另一种方法是,在 AWS 中拥有一个基本映像,其中用户已经使用授权密钥中的公钥创建。并使用此图像创建新实例。
【讨论】: