使用SSH密钥进行服务器login时,为sudo用户使用非常安全的密码是否明智?

我不是在问这里怎么做,而是试图理解最佳实践和处理服务器安全的“正确”方法。 为了防止暴力破解密码攻击,我以多种方式保护了我的服务器,其中一个是受密码保护的SSH密钥,用于在任何用户(现在是单个开发者框)上login。 很明显,无论用户何时需要login,他都需要访问该密钥的密钥和密码。

但是,我想了解如何处理该(或任何)特定用户的系统密码,特别是在处理sudo时。 几个问题:

  • 有没有在给每个用户一个密码的所有(所以他/她可以使用sudo)的价值?
  • 如果是这样,使用一个疯狂的安全密码是这样(即384位+)
  • 假设上面的答案是否定的:
    • 任何用户每次需要运行一个sudo命令(yes lastpass,dashlane,1pass等都是选项,但是必须打开/validation/查找并复制真正长的密码,似乎是一个巨大的麻烦),记得这个密码怎么可能呢?
    • 对于这些密码有足够的安全性,如果字典攻击能够在3秒内findsudo密码,那么这很重要吗?

提前谢谢!

我走相反的方式,并使用无密码的sudo。

%sudo ALL =(ALL:ALL)NOPASSWD:ALL

正如你指出的,确保你的用户ssh密钥有一个密码。 此外,请确保您禁用密码authentication到SSH。

如果你已经完成了上述工作,我觉得这个configuration非常实用。

在sudo上有一个密码不仅仅是validation,它也提供一个中断来授权请求​​。

如果您复制并粘贴包含sudo rm -rf /密码sudo的脚本不会帮助您。

如果恶意用户可以以某种方式成为具有无密码sudo访问权限的可信用户,则潜在用户也有可能成为另一用户的权限提升的目标; 说信任的用户有一个无害的cron工作,执行脚本恶意用户已经写权限,他改变脚本做别的事情。

这些可能不是您所关心的,但请注意,密码提示可防止某些攻击媒介成为现实。