禁用使用弱密码的 ssh 登录

禁用使用弱密码的 ssh 登录

想象一下一个疯狂的 Debian 服务器管理员,他为用户添加了一个弱密码,并提示他们必须在第一次登录时更改密码。

既然他只使用安全密码,有没有办法提示每个使用弱密码的用户将其更改为更安全的密码,至少包含 12 个字符、数字、特殊字符等,同时又不打扰已经有安全密码的用户?

答案1

两步解决方案:

  1. 不允许用户创建弱密码。您可以使用 pam_unix.so 部分执行此操作,使用一行类似于您的 pam 配置(大概在/etc/pam.d/common-password或类似)(obscure 和 minlen=9 会有点帮助):

    密码 [success=1 default=ignore] pam_unix.so obscure minlen=9 sha512
    
    或者在 PAM 中安装更复杂的密码检查器(例如 pam-cracklib,它可以检查密码强度,当用户尝试更改密码时可以根据字典检查密码等)。

  2. 如果您之前允许使用弱密码,则要求所有密码在下次登录时更改。查看以man shadow了解如何通过将上次密码更改日期设置为来设置密码0,当然您不必直接编辑/etc/shadow- 您可以使用 sudo chage -d 0 $USERNAME(或使用sudo passwd -e $USERNAME)来执行此操作。如果您想使所有密码过期,并且每个人都有一个包含其用户名的目录,/home您可以执行以下操作:

    须藤苏
    cd /主页
    对于 * 中的 USERNAME;执行 chage -d 0 $USERNAME ;完成
    

答案2

你需要一个破解库PAM-cracklib解决您的问题。这个想法是 SSH 将使用 PAM,密码将无缝且安全地进行检查。看看我提供的最后一个链接 - 它包含一个很棒的教程,我没有什么可补充的

答案3

不,他不能这么做。

密码仅以“哈希”形式存储在 /etc/shadow- 中。因此管理员根本不知道密码是什么样子的。

因此他只能提示所有用户在下次登录时更改密码,然后验证该密码是否正确。

相关内容