Ubuntu

將 keytab 文件複製到哪些伺服器

  • June 13, 2017

我正在嘗試設置一個簡單的 Kerberos 環境,其中客戶端伺服器通過 Kerberos 伺服器對 Web 服務(在我的情況下為 OpenSSH)進行身份驗證。

我在 KDC 上生成了一個 keytab 文件,但不太確定要將文件複製到哪些伺服器。我只需要將其複製到提供服務的機器上,還是複製到想要對服務進行身份驗證的客戶端機器上?

在正常情況下,您創建的 keytab 文件(通常使用服務帳戶主體(或實例),例如 ssh/hostname)應該放在該 kerberos 服務的“客戶端”上。

在此客戶端上,您將使用此密鑰表(記憶體帳戶憑據)使用類似這樣的命令對 KDC 驗證您的服務(在服務的情況下,這通常由服務在其程式碼中或通過腳本,在啟動時):

kinit -kt /path/to/keytab.file principal/name

keytabs 以某種方式包含您的帳戶(或服務帳戶)憑據(例如主體和密碼),因此您不必手動進行身份驗證,但您可以使用此 keytab 自動進行身份驗證(並且 keytab 應該具有嚴格的權限,自然)

希望有幫助

注意:KDC 也使用密鑰表,注意不要將此密鑰表上傳到您的客戶端!它包含 KDC/kadmin 資訊!

為了確保您使用的是正確的,您可以使用 kadmin 從客戶端連接到您的 KDC 並從那裡創建密鑰表,例如:

client$ kadmin -p your_admin_login/admin  # login to the KDC
client$ kadmin> ktadd -kt /path/to/keytab.keytab <principal_name>  # generate a keytab locally for account principal_name
client$ kadmin> exit
client$ kinit -kt /path/to/keytab.keytab <principal_name> # test it
client$ <configure the keytab path in your app>

問候,

引用自:https://serverfault.com/questions/855592