使用谷歌身份validation与Linux用户的行业标准?

想问一下,特别是那些运行大量用户的大环境,如果有任何标准化或行业推荐的方式来安全地向远程用户分发validation码和/或强制用户重新运行谷歌validation器他们通过sshlogin到一个configuration了libpam模块的Linux主机,每次通过sshlogin时都要求用户inputunix密码和validation码。 假设系统pipe理员设置帐户,是否有办法;

(a)首次login时不要求google-authenticator强制他们运行它,以便他们可以安全地检索他们的validation代码 – 或者(b)系统pipe理员为他们运行它作为创build帐户的一部分,并安全地(很容易,因为可能有很多用户)分发代码加上unix密码给用户?

请注意,系统pipe理员可以使用“chage”命令强制用户在首次login时更改其unix密码。

我对所有的实际解决scheme感兴趣,特别是那些在大型环境中成功实施的解决scheme。 你如何得到新用户的双因素代码? 通过txt消息发送到他们的手机? 把它写在纸上,交给他们? ….?

据我所知,google 2fa没有行业标准。

如果您拥有configurationpipe理解决scheme,则可以使用它将Google 2fa部署到所有用户。

我有和你一样的需求,在我的情况下,我写了一个Ansible模块,安装,configuration和显示紧急钥匙给用户,期望用户有足够的责任为自己写下来。

该模块还创build一个名为“救援”,可以随时访问机器的用户。

除了模块之外,您可以使模块将每个用户的紧急密钥导出到您要pipe理/备份的某个共享networking驱动器。

我不确定这是你的完整答案,但看看我的模块 。

我不知道有任何公开的解决scheme(开源或其他)将密钥分发到本地系统。 我已经完成了这两种方式。

1)FreeIPA(Redhat IDm)

如果您可以select将FreeIPA用于用户pipe理系统,则可以将TOTP / Google身份validation添加到所有帐户,并使用HBACpipe理需要2FA的系统。

2)由开发者编写的内部应用程序

在一个案例中,我们将BASE32机密信息集中存储在一个SQL数据库(2016encryption)中,并将这些密钥分发给网关authentication服务器(radius)。 这些服务器都有一个代理,用于从API端点提取密钥并将其写入特定的文件夹。 我们的内部应用程序也用于其他员工信息,所以我们公开他们的QR码。 我们不使用代码生成的google-auth,只是pam模块本身。

我们也没有编写一次性使用密钥,因为这些密钥实际上并不是一次性使用的,重新分配这些文件将会阻止这些密钥的旋转。

同时考虑到本地文件的权限,服务用户和selinux,不要以root身份运行pam。