4

我在不同的网站上寻找上述问题的答案,但在每种情况下都有如何生成 keytab 文件。我需要 keytab 来获取包含 kerberos 身份验证的 hbase 连接。

4

1 回答 1

6

为了在 Windows 上生成 keytab,您需要运行某个版本的 Kerberos,它与目录服务器对话。在 Windows 上,迄今为止最普遍的例子是 Active Directory,它内置了 Kerberos 支持。您需要在加入 Active Directory 域的 Windows 服务器上创建密钥表,使用 ktpass 命令实际创建密钥表。

Keytab 生成语法示例:

ktpass -out centos1-dev-local.keytab -mapUser krbCentos@DEV.LOCAL +rndPass -mapOp set +DumpSalt -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -princ HTTP/centos1.dev.local@DEV.LOCAL

上面的命令示例成功创建了一个密钥表,用于名为 DEV.LOCAL 的 AD 域。注意:注意使用随机密码语法 (+rndPass)。在我看来,没有必要在 keytab 创建命令语法中指定密码。相反,最好让密码随机化——这样可以提供更好的安全性,因为它可以防止任何人以 AD 帐户的身份手动登录并绕过 keytab。

如需更多参考,我强烈建议您阅读我在 Microsoft Technet 上关于在 Windows 平台上创建 Kerberos 密钥表的文章,该文章极大地扩展了我在此处所说的内容: Kerberos Keytabs – Explained。我经常根据在此论坛中看到的问题返回并对其进行编辑。

于 2017-04-02T00:27:45.833 回答