【问题标题】:Multiple users connecting to AWS EC2 via SSH多个用户通过 SSH 连接到 AWS EC2
【发布时间】:2016-11-08 20:58:18
【问题描述】:

我试图组织开发人员如何通过 SSH 连接到我以管理员身份启动的 AWS 实例。我在文档中注意到它说:

您需要在启动实例时指定的密钥对的 .pem 文件的完全限定路径。

这是否意味着一个人只能通过 SSH 连接到一个已经启动的实例?我想让实例继续运行,让其他人能够通过 SSH 安装软件和配置。

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    以下是向 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

    【讨论】:

    • 你能解释一下 user.pem 文件的来源吗?我是否还需要进入 AWS 控制台并创建相同的新用户并下载 .pem 文件?谢谢。
    • 运行keygen命令时实例中会生成user.pem文件
    • 如你上面所说:生成了 user 和 user.pub 。我刚刚将用户文件复制到 user.pem,我可以使用 ssh 登录。谢谢。我不清楚通过控制台的 AWS 用户和这个 linux 创建的用户之间的关系。我在控制台的 IAM 区域中没有看到这个新的 linux 用户。我可以链接它们并分配访问权限吗?
    • @user1069528 所以这个 linux 创建的用户将可以访问服务器而不是 AWS 控制台,直到您在 AWS 控制台中创建帐户。您也不能从服务器端链接它们。
    • 太棒了。感谢您的帮助。
    【解决方案2】:

    创建实例时,您可以在启动时指定密钥。最终发生的事情是 AWS 获取与您创建的密钥对关联的公钥,并将其放入 /home/ec2-user/.ssh/ 中的 authorized_keys 中。

    因此,如果这是一次性的事情,您可以将私钥(您在创建密钥时下载的 .pem 文件)提供给需要访问权限的用户。

    如果这是一个持续存在的问题 - 即您将创建大量实例并有很多不同的人需要访问它们 - 那么您需要一个更好的解决方案,但您必须弄清楚您的要求是。

    一些潜在的解决方案是从您的用户那里获取公钥,将它们添加到一个实例,然后从该实例创建一个 AMI。使用该 AMI 启动未来的实例。您还可以将用户公钥放入 S3,并使用脚本在创建实例时将其拉下并将它们添加到 authorized_keys 或创建单个用户。如果您的所有用户都有 IAM 账户,您可以从 IAM 中提取用户密钥。或者您可以使用目录并配置您的实例以使用该目录进行身份验证。

    【讨论】:

      【解决方案3】:

      设置用户管理的一种方法是

      1. 要求所有用户创建自己的公私钥。
      2. 每个人都在某个位置共享/复制/签入他们的公钥,我们可以在其中运行 rsync 服务器以公开所有公钥
      3. 在服务器上,从 rsync 服务器获取所有这些密钥并运行 usercreate 命令。

      另一种方法是,在 AWS 中拥有一个基本映像,其中用户已经使用授权密钥中的公钥创建。并使用此图像创建新实例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-02
        • 2017-04-18
        相关资源
        最近更新 更多