為 Azure Active Directory 網域服務 (AD DS) 中的主機或服務設定伺服器主體名稱,並產生包含服務共用秘密金鑰的 .keytab 檔案。 .keytab 檔案是根據 Kerberos 驗證通訊協定的 Massachusetts Institute of Technology (麻省理工學院,MIT) 實作。 ktpass 命令列工具可讓支援 Kerberos 驗證的非 Windows 服務使用 Kerberos 金鑰發佈中心 (KDC) 服務提供的互通性功能。
Syntax
ktpass
[/out <filename>]
[/princ <principalname>]
[/mapuser <useraccount>]
[/mapop {add|set}] [{-|+}desonly] [/in <filename>]
[/pass {password|*|{-|+}rndpass}]
[/minpass]
[/maxpass]
[/crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All}]
[/itercount]
[/ptype {KRB5_NT_PRINCIPAL|KRB5_NT_SRV_INST|KRB5_NT_SRV_HST}]
[/kvno <keyversionnum>]
[/answer {-|+}]
[/target]
[/rawsalt] [{-|+}dumpsalt] [{-|+}setupn] [{-|+}setpass <password>] [/?|/h|/help]
Parameters
| Parameter | Description |
|---|---|
/外 <filename> |
指定要產生的 Kerberos 版本 5 .keytab 檔案名稱。 便條: 這是您傳輸到未執行 Windows 作業系統的電腦的 .keytab 檔案,然後取代或合併為現有的 .keytab 檔案 /Etc/Krb5.keytab。 |
/普林克 <principalname> |
指定使用 host/computer.contoso.com@CONTOSO.COM 形式的主體名稱。 儆: 此參數區分大小寫。 |
/地圖使用者 <useraccount> |
將 princ 參數所指定的 Kerberos 主體名稱對應至指定的網域帳戶。 |
/馬波普 {add|set} |
指定如何設定對應屬性。
|
{-|+}desonly |
根據預設,系統會設定僅限 DES 加密。
|
/在 <filename> |
指定要從未執行 Windows 作業系統之主機電腦讀取的 .keytab 檔案。 |
/通過 {password|*|{-|+}rndpass} |
指定 princ 參數所指定之主體使用者名稱的密碼。 使用 * 提示輸入密碼。 |
| /minpass | 將隨機密碼的長度下限設為 15 個字元。 |
| /maxpass | 將隨機密碼的長度上限設為 256 個字元。 |
/加密 {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} |
指定在 keytab 檔案中產生的金鑰:
便條: 因為預設設定是以較舊的 MIT 版本為基礎,所以您應該一律使用參數 |
| /itercount | 指定用於 AES 加密的反覆運算計數。 預設值會忽略非 AES 加密的 反覆專案計數 ,並將 AES 加密設定為 4,096。 |
/p類型 {KRB5_NT_PRINCIPAL|KRB5_NT_SRV_INST|KRB5_NT_SRV_HST} |
指定主體類型。
|
/kvno <keyversionnum> |
指定金鑰版本號碼。 預設值是 1秒。 |
/答 {-|+} |
設定背景回答模式:
|
| /target | 設定要使用的網域控制站。 根據預設,網域控制站可根據主體名稱來偵測。 如果網域控制站名稱無法解析,系統將會顯示對話方塊,以要求有效的網域控制站。 |
| /rawsalt | 強制規定 ktpass 在產生金鑰時應使用 rawsalt 演算法。 這是選用參數。 |
{-|+}dumpsalt |
這個參數的輸出會顯示用來產生金鑰的 MIT Salt 演算法。 |
{-|+}setupn |
除了服務主體名稱 (SPN) 之外,還會設定使用者主體名稱 (UPN)。 根據預設,.keytab 檔案中的兩者都會遭到設定。 |
{-|+}setpass <password> |
在提供時設定使用者的密碼。 如果使用 rndpass,就會改為產生隨機密碼。 |
| /? | 顯示這個命令的說明。 |
Remarks
在未執行 Windows 作業系統之系統上執行的服務,可使用 AD DS 中的服務執行個體帳戶加以設定。 這樣一來,任何 Kerberos 用戶端都能透過使用 Windows KDC 的方式,對未執行 Windows 作業系統的服務進行驗證。
/princ 參數不會由 ktpass 評估,並依提供的方式使用。 產生 Keytab 檔案時,不會檢查參數是否符合 userPrincipalName 屬性值的確切大小寫。 如果大小寫沒有完全相符,則使用 Keytab 檔案且區分大小寫的 Kerberos 發佈可能會發生問題,甚至在預先驗證期間以失敗坐收。 從 LDifDE 匯出檔案檢查並擷取正確的 userPrincipalName 屬性值。 For example:
ldifde /f keytab_user.ldf /d CN=Keytab User,OU=UserAccounts,DC=contoso,DC=corp,DC=microsoft,DC=com /p base /l samaccountname,userprincipalname
Examples
若要為未執行 Windows 作業系統的主機電腦建立 Kerberos .keytab 檔案,您必須將主體對應至帳戶,並設定主機主體密碼。
使用 Active Directory 使用者和密碼 嵌入式管理單元,為未執行 Windows 作業系統之電腦上的服務建立使用者帳戶。 例如,建立名稱為 User1 的帳戶。
使用 ktpass 指令,輸入下列內容來設定使用者帳戶的身分對映:
ktpass /princ host/User1.contoso.com@CONTOSO.COM /mapuser User1 /pass MyPas$w0rd /out machine.keytab /crypto all /ptype KRB5_NT_PRINCIPAL /mapop setNote
您無法將多個服務執行個體對應至相同的使用者帳戶。
將 .keytab 檔案與未執行 Windows 作業系統的主機電腦上的 /Etc/Krb5.keytab 檔案合併。