【发布时间】:2014-04-24 13:08:48
【问题描述】:
我想知道是否有一种方法可以在 java 中生成我自己的 keytab 而无需进入 kdc?我在 ApacheDS 测试中发现了类似的代码:
Keytab keytab = Keytab.getInstance();
KerberosTime timeStamp = new KerberosTime(KerberosUtils.UTC_DATE_FORMAT.parse("20070217235745Z"));
Map<EncryptionType, EncryptionKey> keys = KerberosKeyFactory
.getKerberosKeys(principalName, userPassword);
KeytabEntry keytabEntry = new KeytabEntry(
principalName,
1L,
timeStamp,
(byte) 0,
keys.get(EncryptionType.DES_CBC_MD5));
List<KeytabEntry> entry = Arrays.asList(keytabEntry);
keytab.setEntries(entry);
keytab.write(keytabFile);
return keytabFile;
我可以在我创建的 keytab 上列出 klist:
Vno 类型主要日期别名
0 des-cbc-md5 ssh/localhost@EXAMPLE.COM 2007-02-17
另外,如果这不可能,有没有办法使用 ApacheDS 或任何其他 java 库以编程方式获取密钥表?
【问题讨论】: