如何将具有 SSH 访问权的新用户账户添加到 Amazon EC2 Linux 实例?
上次更新时间:2020 年 8 月 20 日
我想添加可使用 SSH 连接到 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例的新用户账户。该怎么做?
简短描述
每个 Amazon EC2 Linux 实例均使用默认的系统用户账户(具有实例的管理访问权限)启动。如果有多个用户需要访问实例,则安全最佳实践是为每个用户使用单独的账户。
解决方法
为新用户账户创建密钥对
将新用户添加到 EC2 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
检索密钥对的公有密钥
验证您的密钥对指纹
在导入您自己的公有密钥或检索密钥对的公有密钥后,执行验证您的密钥对指纹中的步骤。
更新和验证新用户账户的凭证
检索公有密钥后,请确认您有权将公有密钥添加到此帐户的 .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. 从您本地计算机的命令行提示符运行以下命令:
$ ssh -i /path/new_key_pair.pem new_user@public_dns_name_of_EC2_Linux_instance
要使用 SSH 从 Windows 连接到您的 EC2 Linux 实例,请按照使用 PuTTY 从 Windows 连接到 Linux 实例中的步骤操作。
注意:如果您在尝试连接时收到错误消息,请参阅排查实例的连接问题。
2. 从实例的命令行运行 id 命令以查看为 new_user 帐户创建的用户和组信息:
$ id
id 命令返回的信息类似于以下内容:
uid=1004(new_user) gid=1004(new_user) groups=1004(new_user)
3. 将私有密钥文件分发给您的新用户。