我在使用 Debian 服务器时遇到了一个问题 - 当我使用新创建的用户使用 sudo 时,它会要求输入密码,并且它已经设置了 ssh 登录(由于我可以登录到服务器,因此工作正常)。
我的步骤如下
- 在 Digital Ocean 中创建 Debian vm,选择基于 ssh 密钥的登录 - 它正在运行
- 创建了一个新用户并添加到 sudo 组,然后设置了基于 ssh 登录密钥的方法 - 运行正常
- 因此,我可以使用新用户登录服务器,但是当我尝试从新用户终端使用 sudo 时,它会要求输入密码。但是,我需要它不应该要求输入密码,因为我使用的是基于密钥的登录。
请帮我解决这个问题。
答案1
您的基于密钥的登录信息是对于 SSH,和sudo 不是 SSH– 它是一个完全独立的工具,只是恰好被使用通过在这种情况下,远程 SSH 连接。
尽管从技术上来说,可以通过这种方式设置 sudo 以使用 SSH 密钥,但这肯定不是一种常见的配置(而且,只有当您的 SSH 客户端启用了“代理转发”时,它才有效 - 这本身会产生安全风险,但如果没有它,远程程序就无法知道您拥有哪些密钥)。
无密码 sudo 通常是通过完全禁用其身份验证来实现的。如果您可以访问具有无密码 sudo 的系统,请检查它们是否NOPASSWD:
在 /etc/sudoers 或输出中列出了该选项sudo -l
。