【问题标题】:Why password becomes incorrect after generating keytab in Kerberos?为什么在 Kerberos 中生成 keytab 后密码不正确?
【发布时间】:2015-08-27 12:02:58
【问题描述】:

在我的 Kerberos 系统中:

  1. 运行kinit test并输入passwd,成功。
  2. 通过kadmin.local -q "xst -k test.keytab test"生成keytab。
  3. 运行kinit test并输入passwd,失败:

    kinit: Password incorrect while getting initial credentials
    
  4. 运行kinit -k -t test.keytab test,成功。

这正常吗?如果不是,可能的原因是什么?

谢谢。

【问题讨论】:

    标签: kerberos


    【解决方案1】:

    运行后发现kerberos的数据库中krbLastPwdChange(a timestamp value)的属性发生了变化:

    kadmin.local -q "xst -k test.keytab test"
    

    虽然添加选项-norandkey 将只创建密钥表而不更改密码:

    kadmin.local -q "xst -norandkey -k test.keytab test"
    

    我找不到关于kadmin xst的详细文档。

    【讨论】:

    • 正如这个答案所暗示的那样:似乎允许通过密码和密钥表登录的过程是:1.设置密码2.使用-norandkey创建密钥表——这对我有用.
    【解决方案2】:

    这是设计使然。您不能在 Kerberos 中同时拥有密码和密钥表。原因是如果两者都启用了,如果有人能够代表您提取密钥表或拥有您的密钥表的副本,那么他们可能会伪装成您,而您永远不会知道。他们将能够通过 kinit 生成 TGT。

    通过拉取密钥表,密码将失效,因此如果您随后尝试使用密码登录,则会收到错误消息。即使您不确切知道发生了什么,如果您重置密码,也会使密钥表失效。

    【讨论】:

      【解决方案3】:

      原因很简单:

      kinit 告诉你在数据库中没有找到客户端,对吧?默认情况下,当使用 keytab 调用 kinit 时,它使用默认服务器主体来获取 TGT。在您的情况下为host/<hostname>@REALM,但您的密钥表包含主体test@REALM 的密钥。

      在我询问 MIT Kereros 邮件列表之前,我也遇到过这个问题。

      【讨论】:

      • 很抱歉在第4步的命令中漏掉了principal,我已经修好了。使用 keytab 调用 kinit 成功,我的问题是为什么使用密码失败。谢谢。
      • 您确定并且密码没有更改?请使用ktutil 使用您给定的密码创建一个新的密钥表并比较结果。你也应该试试KRB5_TRACE
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多