我想添加可使用 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
检索密钥对的公有密钥
使用适用于您的配置的方法来检索密钥对的公有密钥:
验证您的密钥对指纹
在导入您自己的公有密钥或检索密钥对的公有密钥后,执行验证您的密钥对指纹中的步骤。
更新和验证新用户账户的凭证
检索公有密钥后,请确认您有权将公有密钥添加到此帐户的 .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 并返回到命令行会话提示符。
验证新用户是否可以使用 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. 将私有密钥文件分发给您的新用户。
相关信息
在 Linux 实例上管理用户账户