Ubuntu
將 keytab 文件複製到哪些伺服器
我正在嘗試設置一個簡單的 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>
問候,