我已经设置了 .ssh/authorized_keys 并且能够使用 pub/private 密钥使用新的“用户”登录......我还将“用户”添加到 sudoers 列表中......我现在遇到的问题是什么时候我尝试执行一个 sudo 命令,简单的像:
$ sudo cd /root
Run Code Online (Sandbox Code Playgroud)
它会提示我输入我输入的密码,但它不起作用(我使用的是我设置的私钥密码)
另外,我已经禁用了用户的密码
$ passwd -l user
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
某处我最初的评论被误解了......
我正在尝试强化我的系统......最终目标是使用公钥/私钥进行登录而不是简单的密码身份验证。我已经想出了如何通过authorized_keys 文件来设置所有这些。
此外,我将最终阻止通过 root 帐户登录服务器。但在我这样做之前,我需要 sudo 为第二个用户(我将一直登录系统的用户)工作。
对于第二个用户,我想阻止常规密码登录并仅强制发布/私钥登录,如果我不通过“ passwd -l user 锁定用户......那么如果我不使用密钥,我仍然可以使用常规密码进入服务器。
但更重要的是,我需要让 sudo 与禁用密码的用户一起使用公钥/私钥设置。
编辑:好的,我想我已经明白了(解决方案):
1) 我已经调整了 /etc/ssh/sshd_config 并设置了PasswordAuthentication no
这将阻止 ssh 密码登录(确保在执行此操作之前设置了有效的公钥/私钥
2)我调整了sudoers列表visudo并添加了
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
3) root 是唯一有密码的用户帐户,我正在测试两个没有设置密码的用户帐户“dimas”和“sherry”(密码为空,passwd -d user)
以上基本上可以防止每个人使用密码登录系统(必须设置公钥/私钥)。
此外,sudoers 列表中的用户具有管理员权限。他们也可以su到不同的帐户。所以基本上“dimas”可以sudo su sherry,但是“dimas不能做su sherry。同样,不在sudoers列表中的任何用户都不能做su user …