Google 身份验证器应用程序的开源替代品

Google 身份验证器应用程序的开源替代品

我已将 Google 身份验证器设置为 ssh 的 2FA,效果很好,但 Android 的身份验证器应用程序不再是开源的。有没有一个好的真正的开源替代方案?

答案1

答案2

Aegis authenticatorAndroid 版自由、简单且具有有用的功能(导入/导出、生物识别解锁、二维码扫描或手动输入、材料设计...)

它可以在 f-froid 上使用:https://f-droid.org/fr/packages/com.beemdevelopment.aegis/

答案3

认证。基于云的多设备并发使用应用程序可用于大多数现代平台,包括 LINUX。与 Google 身份验证器令牌兼容。

我在 UBUNTU 系统上使用它,主要用于登录、su 和 lightdm,尽管使用 PAM 模块它将支持许多其他协议(带公钥的 sshd 等)。

这是配置指南2FAUBUNTU JAMMY 与 PAM:

GOOGLE AUTHENTICATOR 仅适用于已配置的用户(~/.google_authenticator 存在)(测试过程)

以下是使用 Google Authenticator 为 /etc/pam.d/login 文件配置 PAM 的步骤。如果用户没有配置他/她的令牌文件,它将绕过验证码。

使用以下命令安装 PAM 和 Google Authenticator 所需的软件包:

sudo apt-get install libpam-google-authenticator

使用文本编辑器编辑 /etc/pam.d/login 文件:

sudo nano /etc/pam.d/login

将以下行添加到文件底部:

auth required pam_google_authenticator.so nullok

保存文件并退出文本编辑器。

然后,您可以对 /etc/pam.d/su 和 /etc/pam.d/lightdm 文件重复步骤 2-3 以完成配置。

对于 ssh 配置,调整 ChallengeResponseAuthentication yes 和 UsePAM yes 参数。有关所需其他 ssh 参数的更多信息,请访问:

https://www.techrepublic.com/article/enable-ssh-2fa-ubuntu-server/

SSH、2FA 和公钥身份验证

如果所需的结果是在使用公钥身份验证调用 ssh 时跳过 Google 身份验证器的 2FA,则必须将“auth required pam_google_authenticator.so nullok”行放置在 /etc/pam.d/sshd 的末尾。该文件看起来像这样:

@include common-auth 帐户需要 pam_nologin.so @include common-account 会话 [success=okignore=ignore module_unknown=ignore default=bad] pam_selinux.so 关闭会话需要 pam_loginuid.so 会话可选 pam_key.so 强制撤销 @include common-会话 会话 可选 pam_motd.so motd=/run/motd.dynamic 可选 pam_motd.so noupdate 会话 可选 pam_mail.soenv # [1] 需要会话 pam_limits.so 会话需要 pam_env.so # [1] 需要会话 pam_env.so user_readenv=1 envfile=/etc/default/locale 会话 [success=okignore=ignore module_unknown=ignoredefault=bad] pam_selinux.so open @include common-password auth required pam_google_authenticator.so nullok

要在使用公钥身份验证的情况下对 root 用户强制执行 2FA,您可以修改 /etc/pam.d/sshd 文件,在 @include common-auth 行后添加 auth required pam_google_authenticator.so nullok 行。这将确保 Google Authenticator PAM 模块始终被调用,即使使用公钥也是如此。 /etc/pam.d/sshd 看起来像这样:

@include common-auth auth 需要 pam_google_authenticator.so nullok 帐户需要 pam_nologin.so @include common-account 会话 [success=ok 忽略=忽略 module_unknown=ignore default=bad] pam_selinux.so 关闭会话需要 pam_loginuid.so 会话可选 pam_key.so强制撤销 @include 公共会话 会话 可选 pam_motd.so motd=/run/motd.dynamic 可选 pam_motd.so noupdate 会话 可选 pam_mail.soenv # [1] 需要会话 pam_limits.so 需要会话 pam_env.so # [1] 需要会话pam_env.so user_readenv=1 envfile=/etc/default/locale 会话 [success=okignore=ignore module_unknown=ignoredefault=bad] pam_selinux.so open @include common-password

进行此更改后,重新启动 sshd 服务并尝试再次以 root 用户身份登录。即使使用公钥身份验证,现在也应该提示您输入 Google 身份验证器验证码。

https://codeberg.org/kpiq/Tech-Space/wiki/2FA-Authenticator-app-%28any-兼容-with-Google-Authenticator%29-setup-for-Ubuntu-Jammy

此用例仅为具有有效 ~/.google_authenticator 文件的用户启用 2FA,这样您就不必调整复杂的 PAM 设置。

相关内容