如何使用Google Authenticator登录Linux桌面

为了提高安全性,您可以要求基于时间的身份验证令牌和密码才能登录到您的Linux PC。此解决方案使用Google Authenticator和其他TOTP应用程序。

这个过程是在Ubuntu 14.04上使用标准的Unity桌面和LightDM登录管理器执行的,但这些原则在大多数Linux发行版和桌面上都是相同的。

我们之前向您展示了如何要求Google Authenticator通过SSH进行远程访问,此过程与此类似。这不需要Google Authenticator应用程序,但可以与任何实现TOTP身份验证方案的兼容应用程序配合使用,包括Authy。

安装Google Authenticator PAM

相关:如何使用Google Authenticator的双因素身份验证保护SSH

在设置SSH访问时,我们首先需要安装适当的PAM(“可插拔身份验证模块”)软件。PAM是一个允许我们将不同类型的身份验证方法插入Linux系统并需要它们的系统。

在Ubuntu上,以下命令将安装Google Authenticator PAM。打开终端窗口,键入以下命令,按Enter键,然后提供您的密码。系统将从Linux发行版的软件存储库中下载PAM并进行安装:

希望其他Linux发行版也能提供此软件包,以便于安装-打开您的Linux发行版的软件存储库并执行搜索。在最坏的情况下,你可以在GitHub上找到PAM模块的源代码,然后自己编译。

正如我们之前指出的,这个解决方案并不依赖于给Google的服务器“打电话回家”。它实现了标准的TOTP算法,即使在您的计算机没有互联网接入的情况下也可以使用。

创建您的身份验证密钥

你现在需要创建一个秘密的认证密钥,并将其输入到你手机上的Google Authenticator应用程序(或类似的应用程序)中。首先,以您的用户帐户登录到您的Linux系统。打开一个终端窗口并运行google-Authenticator命令。键入y,然后按照此处的提示操作。这将使用Google Authenticator信息在当前用户帐户的目录中创建一个特殊文件。

您还将经历将该双因素验证码放入智能手机上的Google Authenticator或类似的TOTP应用程序的过程。您的系统可以生成您可以扫描的二维码,也可以手动键入。

一定要记下你的紧急刮擦代码,如果你的手机丢了,你可以用它来登录。

对使用您的计算机的每个用户帐户执行此过程。例如,如果您是唯一使用您的计算机的人,则只需在您的普通用户帐户上使用一次即可。如果你有其他人使用你的计算机,你会希望他们登录到自己的账户,并为自己的账户生成适当的双因素代码,这样他们就可以登录了。

激活身份验证

这就是事情变得有点不确定的地方。当我们解释如何为SSH登录启用双因素时,我们仅在SSH登录时需要它。这确保了在您丢失身份验证应用程序或出现问题时,您仍然可以在本地登录。

由于我们将为本地登录启用双因素身份验证,因此这里存在潜在问题。如果出现问题,您可能无法登录。记住这一点,我们将引导您仅为图形登录启用此功能。如果你需要的话,这个可以给你一个逃生舱口。

在Ubuntu上启用Google Authenticator进行图形登录

您始终可以仅对图形登录启用两步身份验证,而在从文本提示登录时跳过此要求。这意味着你可以很容易地切换到虚拟终端,在那里登录,然后恢复你的更改,这样在你遇到问题时就不需要gogole Authenciator了。

当然,这会在您的身份验证系统中打开一个漏洞,但是对您的系统具有物理访问权限的攻击者无论如何都可以利用它。这就是为什么双因素身份验证对于通过SSH的远程登录特别有效。

下面是如何为使用LightDM登录管理器的Ubuntu执行此操作。使用如下命令打开LightDM文件进行编辑:

(请记住,只有当您的Linux发行版和台式机使用LightDM登录管理器时,这些特定步骤才有效。)

将以下行添加到文件末尾,然后保存:

末尾的“nullok”位告诉系统用户,即使他们没有运行google-Authenticator命令来设置双因素身份验证,也要让他们登录。如果他们没有设置它,他们将不得不输入一个基于时间的代码-否则他们不会输入。如果删除“nullok”,没有设置Google Authenticator代码的用户帐户将无法以图形方式登录。

下次用户以图形方式登录时,系统会要求他们输入密码,然后提示输入手机上显示的当前验证码。如果他们不输入验证码,他们将不被允许登录。

对于其他Linux发行版和桌面,该过程应该非常类似,因为大多数常见的Linux桌面会话管理器都使用PAM。您可能只需要用类似的东西编辑一个不同的文件来激活适当的PAM模块。

如果您使用主目录加密

较旧版本的Ubuntu提供了一个简单的“主文件夹加密”选项,该选项可以加密你的整个主目录,直到你输入密码为止。具体地说,它使用eccryptfs。但是,由于默认情况下PAM身份验证软件依赖于存储在您主目录中的Google Authenticator文件,因此加密会干扰PAM读取该文件,除非您在登录前确保该文件以未加密的形式提供给系统。如果您仍在使用已弃用的主目录加密选项,请参阅自述文件以了解有关避免此问题的详细信息。

现代版本的Ubuntu提供全磁盘加密,可以很好地使用上述选项。你不需要做什么特别的事

救命啊,它断了!

因为我们只为图形登录启用了它,所以如果它导致问题,应该很容易禁用它。按Ctrl+Alt+F2等组合键访问虚拟终端,然后使用您的用户名和密码登录。然后,您可以使用类似sudo nano/etc/pam.d/lightdm的命令打开该文件,以便在终端文本编辑器中进行编辑。使用我们的Nano指南删除该行并保存文件,即可再次正常登录。

您还可以通过在其他PAM配置文件中添加行“auth required pam_google_Authenticator.so”来强制其他类型的登录(甚至可能是所有系统登录)都需要Google Authenticator。如果你这样做的话要小心。请记住,您可能想要添加“nullok”,这样没有完成安装过程的用户仍然可以登录。

有关如何使用和设置此PAM模块的更多文档可在GitHub上该软件的自述文件中找到。

相关文章