Kerberos 票证 "Expired";找到旧的,而不是新的票
Kerberos ticket "Expired"; Finding old, not new ticket
我正在尝试让 Kerberos 连接到我 Mac (Big Sur) 上的 MS SQL 数据库。我一直在按照说明进行操作 here。我的 Kerberos 身份验证连接曾经有效。当我最近尝试它们时,它们停止工作了。 可能是由于升级了 OS。
根据说明,我有一个看起来像这样的 /etc/krb5.conf
文件:
[libdefaults]
default_realm = DOMAIN.COMPANY.COM
[realms]
DOMAIN.COMPANY.COM = {
kdc = dc-33.domain.company.com
}
当我进入我的终端时 运行 kinit username@DOMAIN.COMPANY.COM
它会提示我输入密码。成功输入密码后,我立即按照建议 运行 klist
命令,我得到了这样的信息:
Credentials cache: API:1234A5B6-7C8D-9EF0-B1F9-ED757F2418F4
Principal: username@DOMAIN.COMPANY.COM
Issued Expires Principal
Apr 5 09:02:23 2022 >>>Expired<<< krbtgt/DOMAIN.COMPANY.COM@DOMAIN.COMPANY.COM
这看起来像是我机器上某处的旧 ticket/credential(我在 4 月 8 日写的)。旧票“已过期”。为什么 klist 命令不检索最近的 kinit
凭据?什么会导致这个?我该如何解决?
我尝试过的事情
天真地,在我所有的 Kerberos 连接问题开始时,在出现此错误之前,我认为我需要 update/upgrade Kerberos。所以我用 brew install krb5
安装了 Kerberos。不幸的是,我认为这只是混淆了 OS,因为 Kerberos 然后安装在 2 个位置。
我看到操作系统可能需要“知道”在混淆时在哪里可以找到 Kerberos 文件(参见上面的要点)。因此,我将以下行添加到我的 .zshrc
文件中。
export PATH=/usr/local/opt/krb5/bin:$PATH
export PATH=/usr/local/opt/krb5/sbin:$PATH
export LDFLAGS="-L/usr/local/opt/krb5/lib $LDFLAGS"
export CPPFLAGS="-I/usr/local/opt/krb5/include $CPPFLAGS"
这些行在我仍然安装了 Homebrew 版本的 Kerberos 时有所帮助,但我从 运行 brew uninstall krb5
开始安装,现在它们没有帮助(见下一段)。
我使用此命令 sudo find / -name "krb5"
在我的终端中搜索了 krb5
文件夹。当我搜索长长的结果列表时,我找到了几个 krb5
文件夹,但其中 none 个文件夹有 bin
、sbin
、lib
或 include
中的目录。因此,似乎在 brew uninstall krb5
命令期间,这些文件以及 /usr/local/Cellar
.
中的文件已从我的系统中删除
我还没有尝试在 instruction page 上安装“先决条件”,因为我的 Kerberos 过去已经可以使用了。所以,我假设先决条件应该已经到位,除非它们在我的 OS 更新期间发生了变化。由于 brew install
尝试创建的问题,我犹豫要不要尝试。
结论
很明显 Kerberos 仍然安装在我的机器上的某个地方,因为它会在 kinit
之后提示我输入密码并且知道输入的密码是否有效。凭据在创建后立即“过期”。我该如何解决这个问题?
install
ing 和 uninstall
ing kerberos 似乎扰乱了您的某些 OS 设置。这与最近的 OS 更新相结合可能需要重新启动,如果您还没有这样做的话。
我正在尝试让 Kerberos 连接到我 Mac (Big Sur) 上的 MS SQL 数据库。我一直在按照说明进行操作 here。我的 Kerberos 身份验证连接曾经有效。当我最近尝试它们时,它们停止工作了。 可能是由于升级了 OS。
根据说明,我有一个看起来像这样的 /etc/krb5.conf
文件:
[libdefaults]
default_realm = DOMAIN.COMPANY.COM
[realms]
DOMAIN.COMPANY.COM = {
kdc = dc-33.domain.company.com
}
当我进入我的终端时 运行 kinit username@DOMAIN.COMPANY.COM
它会提示我输入密码。成功输入密码后,我立即按照建议 运行 klist
命令,我得到了这样的信息:
Credentials cache: API:1234A5B6-7C8D-9EF0-B1F9-ED757F2418F4
Principal: username@DOMAIN.COMPANY.COM
Issued Expires Principal
Apr 5 09:02:23 2022 >>>Expired<<< krbtgt/DOMAIN.COMPANY.COM@DOMAIN.COMPANY.COM
这看起来像是我机器上某处的旧 ticket/credential(我在 4 月 8 日写的)。旧票“已过期”。为什么 klist 命令不检索最近的 kinit
凭据?什么会导致这个?我该如何解决?
我尝试过的事情
天真地,在我所有的 Kerberos 连接问题开始时,在出现此错误之前,我认为我需要 update/upgrade Kerberos。所以我用 brew install krb5
安装了 Kerberos。不幸的是,我认为这只是混淆了 OS,因为 Kerberos 然后安装在 2 个位置。
我看到操作系统可能需要“知道”在混淆时在哪里可以找到 Kerberos 文件(参见上面的要点)。因此,我将以下行添加到我的 .zshrc
文件中。
export PATH=/usr/local/opt/krb5/bin:$PATH
export PATH=/usr/local/opt/krb5/sbin:$PATH
export LDFLAGS="-L/usr/local/opt/krb5/lib $LDFLAGS"
export CPPFLAGS="-I/usr/local/opt/krb5/include $CPPFLAGS"
这些行在我仍然安装了 Homebrew 版本的 Kerberos 时有所帮助,但我从 运行 brew uninstall krb5
开始安装,现在它们没有帮助(见下一段)。
我使用此命令 sudo find / -name "krb5"
在我的终端中搜索了 krb5
文件夹。当我搜索长长的结果列表时,我找到了几个 krb5
文件夹,但其中 none 个文件夹有 bin
、sbin
、lib
或 include
中的目录。因此,似乎在 brew uninstall krb5
命令期间,这些文件以及 /usr/local/Cellar
.
我还没有尝试在 instruction page 上安装“先决条件”,因为我的 Kerberos 过去已经可以使用了。所以,我假设先决条件应该已经到位,除非它们在我的 OS 更新期间发生了变化。由于 brew install
尝试创建的问题,我犹豫要不要尝试。
结论
很明显 Kerberos 仍然安装在我的机器上的某个地方,因为它会在 kinit
之后提示我输入密码并且知道输入的密码是否有效。凭据在创建后立即“过期”。我该如何解决这个问题?
install
ing 和 uninstall
ing kerberos 似乎扰乱了您的某些 OS 设置。这与最近的 OS 更新相结合可能需要重新启动,如果您还没有这样做的话。