将 keytab 文件复制到哪些服务器

将 keytab 文件复制到哪些服务器

我正在尝试设置一个简单的 Kerberos 环境,其中客户端服务器通过 Kerberos 服务器向 Web 服务(在我的情况下是 OpenSSH)进行身份验证。

我在 KDC 上生成了一个 keytab 文件,但不太确定要将该文件复制到哪些服务器。我是否只需要将其复制到提供服务的机器,还是也复制到想要向服务进行身份验证的客户端机器?

答案1

在正常情况下,您创建的 keytab 文件(通常使用服务帐户主体(或实例),例如 ssh/hostname)应放在“客户端”该 Kerberos 服务。

在这个客户端上,您将使用此密钥表(缓存帐户凭据)通过 KDC 验证您的服务,使用如下命令(对于服务而言,这通常由服务在启动时在其代码中或通过脚本完成):

kinit -kt /path/to/keytab.file principal/name

keytab 以某种方式包含您的帐户(或服务帐户)凭据(例如主体和密码),这样您就不必手动进行身份验证,但您可以使用此 keytab 自动执行身份验证(并且 keytab 自然应该具有严格的权限)

希望有帮助

注意:KDC 也使用密钥表,注意不要将此密钥表上传到您的客户端!它包含 KDC/kadmin 信息!

为了确保您使用的是正确的,您可以使用 kadmin 从客户端连接到您的 KDC 并从那里创建密钥表,例如:

client$ kadmin -p your_admin_login/admin  # login to the KDC
client$ kadmin> ktadd -kt /path/to/keytab.keytab <principal_name>  # generate a keytab locally for account principal_name
client$ kadmin> exit
client$ kinit -kt /path/to/keytab.keytab <principal_name> # test it
client$ <configure the keytab path in your app>

问候,

相关内容