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