使用 SSH 时,仅当用户主目录中存在证书时,是否可以阻止密码身份验证?

使用 SSH 时,仅当用户主目录中存在证书时,是否可以阻止密码身份验证?

我正在启动一个面向公众的服务器,并运行 SSH 以进行远程访问。每个标准人类用户都将使用证书进行身份验证。

然而,机器上存在一个非常有限的功能帐户,自动软件将使用该帐户登录,但不支持使用证书进行身份验证。

我希望 SSHd 拒绝对包含证书的所有用户帐户进行密码身份验证的任何尝试,但允许对不包含证书的用户帐户进行密码身份验证。

答案1

如果用户可以自己更改自己的证书,那么每隔一段时间就会有人犯错误并删除他们现有的证书。如果这导致帐户恢复为密码身份验证,用户可能会了解这一点并故意利用它。

相反,将默认设置设置为/etc/ssh/sshd_config仅接受证书身份验证,然后Match User在配置文件末尾创建一个块来覆盖默认设置,以仅允许对该用户进行密码身份验证。或者,如果可能有其他用户使用密码身份验证,请将其设为一个Match Group块并创建一个自定义组,您将向其中添加需要密码身份验证的 SSH 访问的任何用户。

相关内容