共用方式為


ktpass

為 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} 指定如何設定對應屬性。
  • 新增 - 新增指定本機使用者名稱的值。 這是預設值。
  • 設定 - 設定指定本機使用者名稱的僅限資料加密標準 (DES) 加密的值。
{-|+}desonly 根據預設,系統會設定僅限 DES 加密。
  • + 會設定僅限 DES 加密的帳戶。
  • - 會在僅限 DES 加密的帳戶上放開限制。 要: Windows 預設不支援 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 檔案中產生的金鑰:
  • DES-CBC-CRC - 用於相容性。
  • DES-CBC-MD5 - 更緊密地遵循 MIT 實作,並用於相容性。
  • RC4-HMAC-NT - 採用 128 位加密。
  • AES256-SHA1 - 採用 AES256-CTS-HMAC-SHA1-96 加密。
  • AES128-SHA1 - 採用 AES128-CTS-HMAC-SHA1-96 加密。
  • 全部 - 表示可以使用所有支援的密碼編譯類型。

便條: 因為預設設定是以較舊的 MIT 版本為基礎,所以您應該一律使用參數 /crypto

/itercount 指定用於 AES 加密的反覆運算計數。 預設值會忽略非 AES 加密的 反覆專案計數 ,並將 AES 加密設定為 4,096。
/p類型 {KRB5_NT_PRINCIPAL|KRB5_NT_SRV_INST|KRB5_NT_SRV_HST} 指定主體類型。
  • KRB5_NT_PRINCIPAL - 一般主體類型 (建議)。
  • KRB5_NT_SRV_INST - 使用者服務實例
  • KRB5_NT_SRV_HST - 主機服務執行個體
/kvno <keyversionnum> 指定金鑰版本號碼。 預設值是 1秒。
/答 {-|+} 設定背景回答模式:
  • -回答會自動重設密碼提示,並顯示 NO。
  • + 答案會自動以 YES 重設密碼提示。
/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 檔案,您必須將主體對應至帳戶,並設定主機主體密碼。

  1. 使用 Active Directory 使用者和密碼 嵌入式管理單元,為未執行 Windows 作業系統之電腦上的服務建立使用者帳戶。 例如,建立名稱為 User1 的帳戶。

  2. 使用 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
    

    Note

    您無法將多個服務執行個體對應至相同的使用者帳戶。

  3. 將 .keytab 檔案與未執行 Windows 作業系統的主機電腦上的 /Etc/Krb5.keytab 檔案合併。