首頁 > 運維 > linux運維 > 如何在Linux中實現SSH的兩因素身份驗證(2FA)?

如何在Linux中實現SSH的兩因素身份驗證(2FA)?

James Robert Taylor
發布: 2025-03-17 17:31:28
原創
281 人瀏覽過

如何在Linux中實現SSH的兩因素身份驗證(2FA)?

在Linux系統上實施SSH的兩因素身份驗證(2FA),通過在授予訪問權限之前需要兩種形式的驗證來增強安全性。這是使用Google Authenticator設置2FA的分步指南,這是為此目的最受歡迎的工具之一:

  1. 安裝Google Authenticator
    首先,安裝Google Authenticator PAM模塊。在像Ubuntu這樣的基於Debian的系統上,您可以通過運行來執行此操作:

     <code>sudo apt-get update sudo apt-get install libpam-google-authenticator</code>
    登入後複製

    在基於紅帽的系統(例如CentOS)上,您可以使用:

     <code>sudo yum install google-authenticator</code>
    登入後複製
  2. 為您的用戶配置Google Authenticator
    google-authenticator命令作為用戶運行:將使用SSH:

     <code>google-authenticator</code>
    登入後複製

    此命令將生成一個秘密密鑰和QR碼。根據您的喜好回答提示,例如是否使用基於時間的令牌以及是否應每30秒更新密鑰。

  3. 配置PAM以使用Google Authenticator
    通過打開file /etc/pam.d/sshd並在最後添加以下行:編輯SSH的PAM配置:

     <code>auth required pam_google_authenticator.so</code>
    登入後複製
  4. 修改SSHD配置
    OPEN /etc/ssh/sshd_config並確保配置以下設置:

     <code>ChallengeResponseAuthentication yes PasswordAuthentication no UsePAM yes</code>
    登入後複製

    然後重新啟動SSH服務以應用更改:

     <code>sudo systemctl restart sshd</code>
    登入後複製
  5. 測試SSH登錄
    嘗試通過SSH登錄。現在,除了密碼外,還應提示您獲取驗證代碼。

使用2FA在Linux系統上使用SSH有哪些安全好處?

在Linux系統上為SSH實施兩因素身份驗證提供了幾種安全好處:

  • 增強的安全性:2FA增加了一層安全性,使攻擊者更難獲得未經授權的訪問。即使密碼被妥協,攻擊者仍然需要第二個登錄的因素。
  • 防止密碼攻擊:2FA減輕密碼,蠻力攻擊和密碼猜測所帶來的風險,因為訪問不僅需要密碼。
  • 問責制和監視:使用2FA,每個登錄都可以與物理設備綁定,從而更容易跟踪和監視登錄嘗試並檢測可疑活動。
  • 減少內部人士威脅:2FA可以通過確保員工的憑據被盜或濫用,可以限制內幕威脅的損害,第二個因素仍然是訪問的障礙。
  • 遵守安全標準:許多監管框架和安全標準都需要使用2FA進行遠程訪問,因此實施它可以幫助組織滿足合規性要求。

我可以使用哪些工具或軟件在Linux上設置2FA?

有幾種工具和軟件選項可用於在Linux上為SSH設置2FA,包括:

  • Google Authenticator :Google Authenticator易於設置並使用基於時間的一次性密碼(TOTP),在大多數Linux發行版中廣泛使用和支持。
  • Authy :類似於Google Authenticator,但具有多設備同步和備份等其他功能。
  • Duo Security :一種全面的解決方案,可提供2FA以及高級功能,例如用於身份驗證和與各種系統集成的推送通知。
  • Yubikey :一種基於硬件的2FA解決方案,使用U2F(通用第二因子),並且由於其物理性質非常安全。
  • Linux-PAM :Linux上的可插入身份驗證模塊(PAM)框架可以配置為使用包括Google Authenticator在內的各種2FA解決方案。
  • FreeOTP :Google Authenticator的開源替代方案,可在許多平台上使用。

在Linux服務器上配置SSH時,如何對常見問題進行故障排除?

在Linux服務器上為SSH配置2FA時,您可能會遇到幾個常見問題。這是對它們進行故障排除的方法:

  1. 配置2FA後,SSH連接失敗

    • 檢查SSHD配置:確保將ChallengeResponseAuthentication設置為yes ,並將UsePAM設置為yes IN /etc/ssh/sshd_config
    • 驗證PAM配置:確認auth required pam_google_authenticator.so將正確添加到/etc/pam.d/sshd中。
  2. 驗證代碼未接受

    • 時間同步:確保正確設置和同步系統時間。基於時間的一次性密碼(TOTP)依賴於準確的計時。
    • 秘密密鑰問題:驗證google-authenticator生成的秘密鍵是否由PAM模塊正確存儲和使用。
  3. 身份驗證提示未出現

    • 檢查PAM配置順序/etc/pam.d/sshd事項中的條目順序。確保不會被後續條目覆蓋Google Authenticator條目。
  4. 登錄循環或懸掛

    • 調試SSHD :使用帶有SSH的-d標誌啟用調試模式並捕獲日誌以了解登錄過程失敗的位置:

       <code>ssh -v user@host</code>
      登入後複製
    • 檢查日誌:檢查系統日誌是否有任何相關錯誤消息:

       <code>sudo journalctl -u sshd</code>
      登入後複製
  5. 硬件令牌問題

    • 設備驅動程序問題:如果使用Yubikey等硬件令牌,請確保系統安裝和識別正確的驅動程序。

通過遵循這些故障排除步驟,您可以解決常見問題並確保2FA在Linux服務器上的SSH正常工作。

以上是如何在Linux中實現SSH的兩因素身份驗證(2FA)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板