无法使用“passwd”命令更改 AWS 上的用户密码

无法使用“passwd”命令更改 AWS 上的用户密码

我正在使用运行 CentOS 的 Amazon AWS 实例。我试图创建一个具有 SUDO 权限的用户,然后禁用 Root 登录以保护系统。我已经完成了使此操作生效所需的操作,但现在遇到了一个我无法理解的问题。

当我创建用户(例如 ABC)时,我没有为其设置密码。相反,我使用 RSA 密钥进行身份验证。

然后我使用visudo命令并添加到ABC ALL=(ALL) ALL文件底部以授予该用户 sudo 权限。

然后我打开/etc/ssh/sshd_configvi转到PermitRootLoginno重新启动 sshd。这是为了禁用 root 访问权限。

我原本以为就是这样,即禁用 root 登录并让 ABC 执行所有必需的管理任务。但现在我陷入了困境。

我的问题是,当我登录 ABC 并尝试sudo任何命令时,它都会要求输入用户密码。此用户没有密码,但有一个 RSA 密钥,我认为它不能与 SUDO 一起使用。

我尝试使用命令为该用户设置密码passwd。这也不起作用。出现以下错误。

$ passwd
Changing password for user kagzisa.
Changing password for kagzisa
(current) UNIX password:
passwd: Authentication token manipulation error

当系统提示输入当前密码时,我只是按下回车键,因为没有指定当前密码。

现在我陷入了困境,因为我已禁用 Root 登录,无法从 ABC 执行任何 sudo 命令。我不能失去这个系统,因为上面正在运行一些重要的进程。

有什么方法可以修复这个问题吗?是重新激活 root 权限还是能够使用 sudo 命令?

答案1

您可能应该在 visudo 中使用 NOPASSWORD 标签,这样它就不会要求您输入任何密码。ABC ALL = NOPASSWD: ALL

答案2

首先成为 root。

作为 root 你不需要知道任何密码就可以更改它:

# passwd kagzisa
Enter new UNIX password: 

答案3

您可能需要安装一个 pam_ssh_agent_auth 包(适用于 Centos 7),然后使用 /etc/pam.d/sudo 将其作为 ABC 的授权(如果您有权限)最后,您可能需要将 SSH_AUTH_SOCK 添加到 sudo 期间持续存在的环境变量列表中。

或者使用之前推荐的 Nopassword。否则,启动新机器,分离 ebs 并连接到新的 ec2(如果可以承受停机时间)

相关内容