在 Amazon Linux 实例上管理用户账户 - Amazon Elastic Compute Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 Amazon Linux 实例上管理用户账户

每个 Linux 实例均使用默认 Linux 系统用户账户启动。默认用户名由启动实例时指定的 AMI 确定。对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user。对于 CentOS,用户名称是 centos。对于 Debian,用户名称是 admin。对于 Fedora,用户名称是 ec2-userfedora。对于 RHEL,用户名称是 ec2-userroot。对于 SUSE,用户名称是 ec2-userroot。对于 Ubuntu,用户名称是 ubuntu。另外,如果 ec2-userroot 无法使用,请与您的 AMI 供应商核实。

注意

Linux 系统用户不应与 AWS Identity and Access Management (IAM) 用户混淆。有关更多信息,请参阅 IAM 用户指南 中的 IAM 用户和组

注意事项

对于许多应用程序来说,使用默认用户帐户是适当的。但是,您可以选择添加用户账户,以便个人能够拥有自己的文件和工作区。此外,为新用户创建用户账户比向多个(可能缺乏经验的)用户授予对默认用户账户的访问权限更安全,因为如果使用不当,该默认用户账户可能对系统造成严重破坏。有关更多信息,请参阅有关保护您的 EC2 实例的提示

要使用 Linux 系统用户账户启用对 EC2 实例的用户 SSH 访问,您必须与用户分享 SSH 密钥。此外,您可以使用 EC2 实例连接来向用户提供访问权限而无需共享和管理 SSH 密钥。有关更多信息,请参阅 使用 EC2 Instance Connect 连接到 Linux 实例

创建用户账户

首先创建用户账户,然后添加允许用户连接并登录实例的 SSH 公有密钥。

创建用户账户

  1. 创建新的密钥对。您必须将 .pem 文件提供给要为其创建用户账户的用户。他们必须使用此文件来连接到实例。

  2. 从您在上一步中创建的密钥对中检索公有密钥。

    $ ssh-keygen -y -f /path_to_key_pair/key-pair-name.pem

    该命令返回公有密钥,如以下示例所示。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6Vhz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXrlsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZqaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3RbBQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
  3. 连接到实例。

  4. 使用 adduser 命令创建用户账户并将其添加到系统(/etc/passwd 文件中会有一个条目)中。该命令还可以为账户创建一个组和一个主目录。在此示例中,用户账户名为 newuser

    • Amazon Linux 和 Amazon Linux 2

      [ec2-user ~]$ sudo adduser newuser
    • Ubuntu

      添加 --disabled-password 参数,可以创建没有密码的用户账户。

      [ubuntu ~]$ sudo adduser newuser --disabled-password
  5. 切换到新账户,以使创建的目录和文件具有正确的所有权。

    [ec2-user ~]$ sudo su - newuser

    如果提示从 ec2-user 变为 newuser,则表示您已将 Shell 会话切换到新账户。

  6. 将 SSH 公有密钥添加到用户账户。首先在 SSH 密钥文件对应的用户主目录中创建一个目录,然后创建密钥文件,最后将公有密钥粘贴到该密钥文件中,如以下分步说明中所述。

    1. .ssh 主目录中创建一个 newuser 目录,并将其权限更改为 700 (只有文件所有者能够读取、写入或打开该目录。)

      [newuser ~]$ mkdir .ssh
      [newuser ~]$ chmod 700 .ssh
      重要

      如果没有这些确切的文件权限,用户将无法登录。

    2. authorized_keys 目录中创建名为 .ssh 的文件并将其权限更改为 600 (只有文件所有者能够读取或写入此文件)。

      [newuser ~]$ touch .ssh/authorized_keys
      [newuser ~]$ chmod 600 .ssh/authorized_keys
      重要

      如果没有这些确切的文件权限,用户将无法登录。

    3. 使用您常用的文本编辑器 (如 vimnano) 打开 authorized_keys 文件。

      [newuser ~]$ nano .ssh/authorized_keys

      将您在步骤 2 中检索到的公有密钥粘贴到文件中并保存更改。

      重要

      确保将公有密钥粘贴到一个连续行中。不得将公有密钥拆分为多行。

      用户现在应该能够使用添加到 newuser 文件的公有密钥所对应的私有密钥登录实例上的 authorized_keys 账户。有关连接到 Linux 实例的不同方法的更多信息,请参阅连接到您的 Linux 实例

删除用户账户

如果不再需要某个用户账户,可以将其删除,使它不再可用。

使用 userdel 命令从系统中删除用户账户。当您指定 -r 参数时,用户的主目录和邮件后台打印将被删除。要保留用户的主目录和邮件后台打印,请省略 -r 参数。

[ec2-user ~]$ sudo userdel -r olduser