Skip to main content

如何使用Google身份驗證器登錄Linux桌面

如何使用Google身份驗證器登錄Linux桌面

Geoffrey Carr

為了提高安全性,您可以要求使用基於時間的身份驗證令牌和密碼登錄Linux PC。此解決方案使用Google身份驗證器和其他TOTP應用程序。

此過程在Ubuntu 14.04上使用標準Unity桌面和LightDM登錄管理器執行,但在大多數Linux發行版和桌面上的原則相同。

我們之前向您展示瞭如何通過SSH遠程訪問Google身份驗證器,此過程與此類似。這不需要Google身份驗證器應用程序,但可以與任何實現TOTP身份驗證方案的兼容應用程序一起使用,包括Authy。

安裝Google身份驗證器PAM

在為SSH訪問設置時,我們首先需要安裝適當的PAM(“pluggable-authentication module”)軟件。 PAM是一個允許我們將不同類型的身份驗證方法插入Linux系統並需要它們的系統。

在Ubuntu上,以下命令將安裝Google Authenticator PAM。打開終端窗口,鍵入以下命令,按Enter鍵,然後提供密碼。系統將從Linux發行版的軟件存儲庫下載PAM並安裝它:

sudo apt-get install libpam-google-authenticator

其他Linux發行版也應該有這個軟件包可以輕鬆安裝 - 打開你的Linux發行版的軟件庫並進行搜索。在最壞的情況下,您可以在GitHub上找到PAM模塊的源代碼並自行編譯。

正如我們之前所指出的,此解決方案並不依賴於向Google的服務器“打電話回家”。它實現了標準TOTP算法,即使您的計算機無法訪問Internet也可以使用它。

創建身份驗證密鑰

您現在需要創建一個秘密身份驗證密鑰,並將其輸入到手機上的Google身份驗證器應用(或類似)應用中。首先,以Linux系統上的用戶帳戶登錄。打開終端窗口並運行 谷歌-認證 命令。類型 ÿ 並按照此處的提示操作。這將在當前用戶帳戶的目錄中使用Google身份驗證器信息創建一個特殊文件。

您還將完成將雙因素驗證碼添加到智能手機上的Google身份驗證器或類似TOTP應用程序的過程。您的系統可以生成您可以掃描的QR碼,也可以手動輸入。

請務必記下緊急刮刮代碼,如果丟失手機,可以使用該代碼登錄。

對使用您的計算機的每個用戶帳戶執行此過程。例如,如果您是唯一使用計算機的人,則可以在普通用戶帳戶上執行一次。如果您有其他人使用您的計算機,您將希望讓他們登錄自己的帳戶並為自己的帳戶生成適當的雙因素代碼,以便他們能夠登錄。

激活身份驗證

這是事情變得有點多愁善感的地方。當我們解釋如何為SSH登錄啟用雙因素時,我們只需要SSH登錄。這確保瞭如果您丟失了身份驗證應用程序或出現問題,您仍然可以在本地登錄。

由於我們將為本地登錄啟用雙因素身份驗證,因此這裡存在潛在的問題。如果出現問題,您可能無法登錄。請注意,我們將引導您僅為圖形登錄啟用此功能。如果需要,這可以為您提供逃生艙口。

在Ubuntu上啟用Google身份驗證器以進行圖形登錄

您始終可以僅對圖形登錄啟用兩步驗證,從文本提示登錄時跳過該要求。這意味著您可以輕鬆切換到虛擬終端,登錄並恢復更改,以便在遇到問題時不需要Gogole Authenciator。

當然,這會在您的身份驗證系統中打開一個漏洞,但是對您的系統具有物理訪問權限的攻擊者無論如何都可以利用它。這就是雙因素身份驗證對於通過SSH進行遠程登錄特別有效的原因。

以下是如何為使用LightDM登錄管理器的Ubuntu執行此操作。使用如下命令打開LightDM文件進行編輯:

sudo gedit /etc/pam.d/lightdm

(請記住,只有Linux發行版和桌面使用LightDM登錄管理器時,這些特定步驟才有效。)

將以下行添加到文件末尾,然後保存:

auth required pam_google_authenticator.so nullok

最後的“nullok”位告訴系統讓用戶登錄,即使他們沒有運行google-authenticator命令來設置雙因素身份驗證。如果他們已經設置了,他們將不得不輸入時間代碼 - 否則他們不會。刪除“nullok”和尚未設置Google身份驗證器代碼的用戶帳戶將無法以圖形方式登錄。

用戶下次以圖形方式登錄時,系統會詢問他們的密碼,然後提示他們輸入手機上顯示的當前驗證碼。如果他們沒有輸入驗證碼,則不允許他們登錄。

對於其他Linux發行版和桌面,該過程應該非常相似,因為大多數常見的Linux桌面會話管理器都使用PAM。您可能只需要使用類似的東西編輯不同的文件以激活相應的PAM模塊。

如果您使用主目錄加密

較早版本的Ubuntu提供了一個簡單的“主文件夾加密”選項,可以加密整個主目錄,直到您輸入密碼。具體來說,這使用ecryptfs。但是,由於PAM軟件默認依賴於存儲在主目錄中的Google身份驗證器文件,因此加密會干擾PAM讀取文件,除非您確保在登錄之前以未加密的形式提供給系統。請參閱自述文件了解更多信息如果您仍在使用已棄用的主目錄加密選項,則有關避免此問題的信息。

現代版本的Ubuntu提供全盤加密,它可以與上述選項一起使用。你不需要做任何特別的事情

幫助,它打破了!

因為我們只是為圖形登錄啟用了它,所以如果它導致問題,應該很容易禁用。按Ctrl + Alt + F2等組合鍵可訪問虛擬終端,並使用您的用戶名和密碼登錄。然後,您可以使用sudo nano /etc/pam.d/lightdm等命令在終端文本編輯器中打開文件進行編輯。使用我們的Nano指南刪除該行並保存文件,您將能夠再次正常登錄。


您還可以通過向其他PAM配置文件添加“auth required pam_google_authenticator.so”行來強制其他類型的登錄(可能是所有系統登錄)使用Google身份驗證器。如果你這樣做要小心。請記住,您可能希望添加“nullok”,以便尚未完成設置過程的用戶仍可以登錄。

有關如何使用和設置此PAM模塊的更多文檔可以在GitHub上的軟件自述文件中找到。

Link
Plus
Send
Send
Pin