如何使用Google Authenticator登录到您的Linux桌面

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

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

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

安装Google Authenticator PAM

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

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

sudo apt-get install libpam-google-authenticator

其他Linux发行版应该希望这个软件包可以方便安装,打开您的Linux发行版软件仓库并执行搜索。 在最坏的情况下,您可以在GitHub上找到PAM模块的源代码,然后自己编译。

正如我们之前指出的,此解决方案不依赖于“打电话回家”到Google的服务器。 它实现标准的TOTP算法,即使您的计算机无法访问Internet也可以使用它。

创建您的验证密钥

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

您还将了解将双重验证码导入智能手机上的Google身份验证器或类似TOTP应用的过程。 您的系统可以生成可扫描的QR码,或者您可以手动键入。

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

对使用您的计算机的每个用户帐户执行此过程。 例如,如果您是唯一使用您的计算机的人,您只需在您的普通用户帐户上执行一次。 如果您有其他人使用您的计算机,您需要让他们登录自己的帐户,并为自己的帐户生成适当的双因素代码,以便他们能够登录。

激活身份验证

这里的东西有点乱。 当我们解释如何为SSH登录启用双因素时,我们只需要SSH登录。 这确保你仍然可以登录本地,如果你失去了身份验证应用程序或者出了问题。

由于我们将为本地登录启用双因素身份验证,因此这里存在潜在的问题。 如果出现错误,您可能无法登录。牢记这一点,我们将指导您完成图形登录。 这给你一个逃生舱门,如果你需要它。

在Ubuntu上启用Google Authenticator for Graphical Logins

您可以始终对图形登录启用两步验证,在从文本提示登录时跳过需求。 这意味着您可以轻松切换到虚拟终端,登录,还原您的更改,如果您遇到问题,则不需要Gogole Authenciator。

当然,这在您的身份验证系统中打开了一个洞,但是对您的系统进行物理访问的攻击者可能已经利用它了 这就是为什么双因素身份验证对通过SSH的远程登录特别有效。

这是如何做到这一点Ubuntu,它使用LightDM登录管理器。 使用以下命令打开LightDM文件进行编辑:

sudo gedit /etc/pam.d/lightdm

(记住,这些具体步骤仅在您的Linux发行版和桌面使用LightDM登录管理器时有效。)

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

auth required pam_google_authenticator.so nullok

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

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

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

如果使用主目录加密

早期版本的Ubuntu提供了一个简单的“主文件夹加密”选项 ,加密整个主目录,直到您输入密码。 具体来说,这使用ecryptfs。 但是,因为默认情况下PAM软件依赖于存储在主目录中的Google Authenticator文件,所以加密会干扰PAM读取该文件,除非您确保在登录前能够以未加密的形式提供给系统。有关更多信息,请参阅README有关避免此问题的信息,如果您仍然使用已弃用的主目录加密选项。

现代版本的Ubuntu提供全磁盘加密 ,这将与上述选项工作正常。 你不必做任何特别的事情

帮助,它打破了!

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


您还可以通过向其他PAM配置文件中添加“auth required pam_google_authenticator.so”行,强制要求Google Authenticator进行其他类型的登录(甚至可能是所有系统登录)。 如果你这样做,请小心。 请记住,您可能需要添加“nullok”,以便未经过设置过程的用户仍然可以登录。

关于如何使用和设置此PAM模块的更多文档可以在GitHub上的软件的README文件中找到。

赞 (0)
分享到:更多 ()