使用 ktab 命令来管理 Kerberos 密钥表文件
Kerberos 密钥表管理器命令 (Ktab) 允许产品管理员管理本地 Kerberos 密钥表文件中存储的 Kerberos 服务主体名称和密钥。通过 IBM 软件开发包 (SDK) 或 Sun Java Development Kit (JDK) 1.6 或更高版本,可以使用 ktab 命令合并两个 Kerberos 密钥表文件。
要合并 ktab 文件,必须安装 Java Development Kit (JDK) V1.6 SR3 累积修订,该修订会将 JDK 升级到 V1.6.0_07。
要合并 ktab 文件,必须安装软件开发包 (SDK) V1.6 SR3 累积修订,该修订会将 JDK 升级到 V1.6.0.02。
要合并 ktab 文件,必须安装 Java Development Kit (JDK) V1.6 SR3 累积修订,该修订会将 SDK 升级到 V1.6.0 Java Technology Edition SR3。
Kerberos 密钥表文件中列示的 Kerberos
服务主体 (SPN) 名称和密钥允许在主机上运行的服务以验证入局 Kerberos 或 SPNEGO 令牌请求。在配置 Kerberos 或 SPNEGO Web
认证之前,WebSphere® Application Server 管理员必须在运行 WebSphere Application Server 的主机上设置 Kerberos 密钥表文件。
不推荐使用的功能部件:

在 WebSphere Application Server V6.1 中引入了一个信任关联拦截器 (TAI),TAI 使用“简单且受保护的 GSS-API 协商机制” (SPNEGO) 来对安全资源的 HTTP 请求进行安全地协商和认证。在 WebSphere Application Server V7.0 中,现已不推荐使用此功能。
SPNEGO Web 认证已取代此功能,以提供下列增强功能:
- 使用管理控制台在 WebSphere Application Server 端配置以及启用 SPNEGO Web 认证和过滤器。
- 不必停止及重新启动 WebSphere Application Server 即可动态地重新装入 SPNEGO。
- 在 SPNEGO Web 认证失败时,可以回退到应用程序登录方法。
要点:
- 一定要保护密钥表文件,并且只允许经授权的产品用户读取这些文件。
- 使用 Ktab 对 Kerberos 密钥表文件所作的更新对 Kerberos 数据库没有影响。如果更改 Kerberos 密钥表文件中的密钥,那么还必须对 Kerberos 数据库作出相应的更改。
本节中的随后内容通过将 Ktab 与 -help 操作数配合使用对 Ktab 的语法进行阐述。
$ ktab -help
Usage: java com.ibm.security.krb5.internal.tools.Ktab [options]
Available options:
-l list the keytab name and entries
-a <principal_name> [password] add an entry to the keytab
-d <principal_name> delete an entry from the keytab
-k <keytab_name> specify keytab name and path with FILE: prefix
-m <source_keytab_name> <destination_keytab_name> specify merging source keytab file name and destination keytab file name
以下示例说明如何使用 Ktab 将 krb5Host1.keytab 文件合并到 krb5.keytab 文件中:
[root@wssecjibe bin]# ./ktab -m /etc/krb5Host1.keytab /etc/krb5.keytab
Merging keytab files: source=krb5Host1.keytab destination=krb5.keytab
Done!
[root@wssecjibe bin]# ls /etc/krb5.*
/etc/krb5Host1.keytab/etc/krb5.keytab
/etc/krb5.keytab
以下示例说明如何在 LINUX 平台上使用 Ktab 将新的主体名称添加到 Kerberos 密钥表文件,其中
ot56prod 是 Kerberos 主体名称的密码:
[root@wssecjibe bin]# ./ktab -a
HTTP/wssecjibe.austin.ibm.com@WSSEC.AUSTIN.IBM.COM ot56prod -k /etc/krb5.keytab
Done!
Service key for principal HTTP/wssecjibe.austin.ibm.com@WSSEC.AUSTIN.IBM.COM saved
以下示例说明如何在 Windows 平台上使用 Ktab 来列示 Kerberos 密钥表文件的内容。
[root@wssecjibe bin]# ./ktab
KVNO Principal
---- ---------
1 HTTP/wssecjibe.austin.ibm.com@WSSEC.AUSTIN.IBM.COM
[root@wssecjibe bin]# ls /etc/krb5.*
/etc/krb5.conf
/etc/krb5.keytab
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)