我已经设置了.ssh / authorized_keys,并能够使用pub / private键使用新的“用户”登录...我也将“用户”添加到了sudoers列表中……我现在遇到的问题是我尝试执行sudo命令,类似以下内容:
$ sudo cd /root
它会提示我输入我输入的密码,但是它不起作用(我使用的是我设置的私钥密码)
此外,我还使用禁用了用户密码
$ passwd -l user
我想念什么?
我最初的言论在某处被误解了...
我正在尝试加强我的系统...最终目标是使用发布/私钥进行登录,而不是简单的密码身份验证。我已经弄清楚了如何通过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
3)root是唯一具有密码的用户帐户,我正在测试两个没有设置密码的用户帐户“ dimas”和“ sherry”(密码为空,passwd -d user
)
以上内容基本上可以防止每个人都使用密码登录系统(必须设置公用/专用密钥)。
另外,sudoers列表中的用户具有管理员权限。他们还可以su
到不同的帐户。因此,基本上“假人”可以sudo su sherry
,但是“假人不能su sherry
。类似地,不在sudoers列表中的任何用户也不能su user
或sudo su user
。
注意上述工作,但被认为安全性较差。任何能够以“ dimas”或“ sherry”用户身份访问代码的脚本都将能够执行sudo以获得root用户访问权限。ssh中的一个漏洞,尽管有设置,该漏洞仍允许远程用户登录;在Firefox之类的系统中执行远程代码;或者任何其他漏洞,该漏洞使不需要的代码得以运行,因为用户现在可以以root用户身份运行。Sudo应该始终要求输入密码,否则您最好以root身份登录,而不要以其他用户身份登录。