如何設定智慧卡 SSH 身份驗證?

如何設定智慧卡 SSH 身份驗證?

我希望能夠使用 Gemalto .NET 智慧卡作為身份驗證方法透過 SSH 連接到我的電腦。如何在 Fedora 13(或通用 Red Hat 風格)機器上完成此操作?

這些是我認為需要的粗略步驟:

  1. 為智慧卡提供憑證(可能還有 CA 來頒發它?)
  2. 將憑證寫入智慧卡
  3. 設定 SSH 伺服器以允許智慧卡身份驗證並將其配置為使用特定憑證/CA
  4. 具有智慧卡支援的 SSH 用戶端(基於 Windows 的免費用戶端可加分)

答案1

我相信金雅拓驅動程式現在是開源的。他們的網站上有原始碼。

您將需要配置該pam模組(我不知道如何執行此操作,但程式碼肯定在那裡)。我想pam設定需要將憑證原則對應到本機使用者 ID。

我相信 GDM 現在支援智慧卡,但我不確定它如何檢測它。我稍後會嘗試尋找(最簡單的方法可能是查看gdm原始程式碼)。

當然,這一切都需要pcscd安裝libpcsclite。您還需要將其複製libgtop11dotnet.so/usr/lib.

編譯 libgtop11dotnet.so 的源碼:https://github.com/AbigailBuccaneer/libgtop11dotnet

答案2

我推薦 kerberos。 MIT 生產了 krb5 客戶端和伺服器。

vwduder,您能推薦一個智慧卡讀卡機和 FIPS-201 相容卡的來源嗎?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

我在自己的伺服器上有一個副本,但目前我在這個堆疊追蹤上還不夠受歡迎,無法與您分享。上面的內容僅比我們自己的伺服器可靠性稍低,因此您可能可以從他們那裡獲取它;)

[編輯]我現在已經夠受歡迎了!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

答案3

使用 RSA 金鑰時,1) 和 2) 是微不足道的,因為正如我們將在 3) 中看到的,實際憑證在此上下文中無關緊要。只需前往 cacert.org 或產生自簽名憑證即可。

對於 3),您需要提取公鑰並將其安裝在 $HOME/.ssh/authorized_keys 中。注意檔案所有權和權限! (.ssh 為 700,authorized_keys 為 600)。不鼓勵使用主機範圍的公鑰身份驗證,但將其作為好奇心的練習。

至於4)你應該看看PuTTY SC(http://www.joebar.ch/puttysc/) 或 - 最好是 - PuTTY-CAC (http://www.risacher.org/putty-cac/)它在 PuTTY SC 的基礎上進行了改進,提供了更好的公鑰提取演算法,並且還包括來自 PuTTY 開發分支的 Kerberos-GSSAPI 支援。

答案4

我製作了一個影片來展示如何使用 PuttySC 和 Linux 伺服器來使用智慧卡安全CRT。您可以在這裡觀看:如何使用智能卡進行 SSH

我不會解釋如何在卡中配置證書,但如果您這樣做,請記住應使用卡管理系統更改卡的管理密鑰。如果您的公司為您提供智慧卡,那麼您就可以輕鬆很多,這樣您就不必擔心這部分。

配置好卡片後,您需要提取公鑰,然後將其新增至 ~/.sshd/authorized_key 中。

若要連接伺服器,您可以使用PuttySC或SecureCRT等工具。您需要取得該卡的 PSKC#11 庫(從智慧卡製造商或開源版本)。使用庫配置 SSH 工具,它應該能夠讀取它並找到憑證。

當您進行身份驗證時,工具會提示您輸入智慧卡 PIN。

相關內容