如何将具有 SSH 访问权限的新用户账户添加到 Amazon EC2 Linux 实例?

上次更新时间:2020 年 7 月 10 日

我想添加可使用 SSH 连接到 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例的新用户账户。该怎么办?

简短描述

每个 Amazon EC2 Linux 实例均使用默认的系统用户账户(具有实例的管理访问权限)启动。如果有多个用户需要访问实例,则安全最佳实践是为每个用户使用单独的账户。

您可以使用 cloud-init 和用户数据加速执行这些步骤。有关更多信息,请参阅如何使用 cloud-init 和用户数据添加拥有至 EC2 实例的 SSH 访问权限的新用户账户?

解决方法

为新用户账户创建密钥对

将新用户添加到 EC2 Linux 实例

1.    使用 SSH 连接到 Linux 实例

2.    使用 adduser 命令将新用户账户添加到 EC2 实例(将 new_user 替换为新账户名称)。下例会在实例的 /etc/passwd 文件中创建关联组、主目录和条目:

$ sudo adduser new_user

注意:如果您将 new_user 添加到 Ubuntu 实例,则应包含 --disabled-password 选项以避免向新账户添加密码:

$ sudo adduser new_user --disabled-password

3.    将安全上下文更改为 new_user 账户,这样一来,您创建的文件夹和文件会具有正确的权限:

$ sudo su - new_user

注意:在运行 sudo su - new_user 命令时,命令 shell 提示符顶部的名称将发生更改以反映 shell 会话的新用户账户上下文。

4.    在 new_user 主目录中创建一个 .ssh 目录:

$ mkdir .ssh

5.    使用 chmod 命令将 .ssh 目录的权限更改为 700。更改权限会限制访问,以便只有 new_user 能够读取、写入或打开 .ssh 目录。

$ chmod 700 .ssh

6.    使用 touch 命令在 .ssh 目录中创建 authorized_keys 文件:

$ touch .ssh/authorized_keys

7.    使用 chmod 命令将 .ssh/authorized_keys 文件权限更改为 600。更改文件权限会限制对 new_user 的读取或写入访问权限。

$ chmod 600 .ssh/authorized_keys

检索密钥对的公有密钥

使用适用于您的配置的方法来检索密钥对的公有密钥:

验证您的密钥对指纹

在导入您自己的公有密钥或检索密钥对的公有密钥后,执行验证您的密钥对指纹中的步骤。

更新和验证新用户账户的凭证

在检索公有密钥后,使用在新用户账户的上下文中运行的命令 shell 会话来确认您有权将公有密钥添加到此账户的 .ssh/authorized_keys 文件中:

1.    以追加模式运行 Linux cat 命令:

$ cat >> .ssh/authorized_keys

2.    将公有密钥粘贴到 .ssh/authorized_keys 文件中,然后按 Enter

注意:对于大多数 Linux 命令行界面,使用 Ctrl+Shift+V 键组合可将剪贴板的内容粘贴到命令行窗口中。对于 PuTTY 命令行界面,单击鼠标右键可将剪贴板的内容粘贴到 PuTTY 命令行窗口中。

3.    按住 Ctrl+d 退出 cat 并返回到命令行会话提示符。

(可选)允许新用户使用 sudo

注意:如果您不想允许新用户使用 sudo,请继续验证新用户是否可以使用 SSH 连接到 EC2 实例

1.    使用 passwd 命令为新用户创建密码:

$ sudo passwd new_user

注意:系统会提示您重新输入密码。再次输入密码进行确认。

2.    将新用户添加到正确的组。

对于 Amazon Linux、Amazon Linux、RHEL 和 CentOS 2,请执行以下操作:

使用 usermod 命令将用户添加到 wheel 组。

$ sudo usermod -aG wheel new_user

对于 Ubuntu,请执行以下操作:

使用 usermod 命令将用户添加到 sudo 组。

$ sudo usermod -aG sudo new_user

验证新用户是否可以使用 SSH 连接到 EC2 实例

1.    通过在本地计算机上从命令行提示符运行以下命令,验证您是否可以通过 sshnew_user 身份连接到您的 EC2 实例:

$ ssh -i /path/new_key_pair.pem new_user@public_dns_name_of_EC2_Linux_instance

要使用 SSH 从 Windows 连接到您的 EC2 Linux 实例,请按照使用 PuTTY 从 Windows 连接到 Linux 实例中的步骤操作。

2.    在通过 SSH 以 new_user 身份连接到实例后,从 EC2 实例命令行运行 id 命令以查看为 new_user 账户创建的用户和组信息:

$ id

id 命令返回的信息类似于以下内容:

uid=1004(new_user) gid=1004(new_user) groups=1004(new_user)

3.    将私有密钥文件分发给您的新用户。


这篇文章对您有帮助吗?


需要更多帮助?