除了確認您網路上的每一台機器都知道所處的 Kerberos 領域和所連絡的 KDC 之外,請為其建立主機主體。到目前為止,僅討論使用者證件。但是,Keberos 相容的服務通常也需要對用戶端使用者驗證自己。因此,在 Kerberos 資料庫中必須包含領域中每一台主機的主體。
主機主體的命名慣例為 host/<hostname>@<REALM>
,其中 hostname
是主機的完整主機名稱。主機主體與使用者主體相似,但是有顯著的差異。使用者主體與主機主體的主要差異在於,前者的金鑰受到密碼保護 — 當使用者從 KDC 取得票證授予的票證時,必須輸入密碼,Kerberos 才能解密票證。如果系統管理員必須每八個小時取得 SSH 精靈的新票證,這對他而言很不方便。
替代方法是,解密主機主體的起始票證所需之金鑰由管理員從 KDC 解壓縮一次並儲存在名為 keytab 的本地檔案中。像 SSH 精靈之類的服務在需要時自動讀取並使用它來取得新票證。預設 keytab 檔案位於 /etc/krb5.keytab
。
若要建立 test.example.com
的主機主體,請在您的 kadmin 工作階段中輸入下列指令:
kadmin -p newbie/admin Authenticating as principal newbie/admin@EXAMPLE.COM with password. Password for newbie/admin@EXAMPLE.COM: kadmin: addprinc -randkey host/test.example.com WARNING: no policy specified for host/test.example.com@EXAMPLE.COM; defaulting to no policy Principal "host/test.example.com@EXAMPLE.COM" created.
除了設定新主體的密碼之外,-randkey
旗標會告知 kadmin 產生隨機金鑰。在此處這樣用是因為此主體不需使用者互動。這是機器的伺服器帳戶。
最後,解壓縮金鑰並將它儲存在本地 keytab 檔案 /etc/krb5.keytab
中。此檔案是由超級使用者所擁有,因此您必須是 root
使用者身份,才能在 kadmin 外圍程序執行下一個指令:
kadmin: ktadd host/test.example.com Entry for principal host/test.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/test.example.com with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab. kadmin:
在完成時,請確認您以 kdestroy 摧毀上面透過 kinit 所取得的管理票證。