ktpass
為 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 檔案。