是否可以使sudo命令支持SSH私钥,以便当用户使用私钥登录时,他/她无需输入密码就可以sudo。
这将允许将UNIX sysadmin密码存储在加密的冷存储器中,并且永远不需要访问它们,前提是用户始终使用安全的私有SSH密钥登录服务器。
sudo visudo
更改您的密码以NOPASSWD: ALL
查看是否有效
是否可以使sudo命令支持SSH私钥,以便当用户使用私钥登录时,他/她无需输入密码就可以sudo。
这将允许将UNIX sysadmin密码存储在加密的冷存储器中,并且永远不需要访问它们,前提是用户始终使用安全的私有SSH密钥登录服务器。
sudo visudo
更改您的密码以NOPASSWD: ALL
查看是否有效
Answers:
如果不对sudo和sshd进行一些严重的代码更改,这是不可能的。Sudo不了解登录方法,并且ssh不会向其他程序发布任何表明是否使用公钥,密码或其他机制进行登录的内容。
就像其他人所说的那样,您可以在sudoers中使用NOPASSWD选项-但是,这将始终适用于指定用户,不仅是当他们将ssh与私钥一起使用时。
如果您确实需要,可以使用suid程序来完成一些技巧,该程序检查sshd日志并锁定/编辑sudoers文件,以使该用户执行无密码sudo,并执行定期任务来撤销此权限。
综上所述,我认为这是一个坏主意。特权命令需要密码有两个不错的好处,而私钥SSH则没有。值得注意的是,它使您有auth超时(必须重新输入密码,对于ssh会话不正确),它使您具有最小密码和轮换密码(与ssh密钥不同,后者具有服务器控制范围之外的口令)。
几个答案指向sudo,没有单独的用户密码。您应该意识到这会降低您的安全性。
对于已经使用证书进行了严格身份验证的用户,这可能不是问题,因为从理论上讲,他可以拥有自己的根证书。
但是,如果您考虑的漏洞将为攻击者提供有限的用户外壳,并且该用户在sudoers文件中设置了NOPASSWD,则攻击者是root用户,而根本没有对系统的任何凭证。
如果sudo要求用户提供密码,则攻击者需要时间和运气才能将其特权提升为root。