Kerberos 和 localhost

Kerberos 和 localhost

我在 Linux 机器上设置了一个 Kerberos v5 服务器,当连接到其他主机(使用 samba、ldap 或 ssh)时,它运行良好,因为我的 kerberos 数据库中有这些主机的主体。

但是我可以使用 kerberos 来对 localhost 进行身份验证吗?如果可以,有什么理由不能使用吗?我还没有为 localhost 创建 kerberos 主体。我认为我不应该这样做;相反,我认为主体应该解析为机器的完整hostname。这可能吗?

我理想情况下希望只在一台服务器上进行配置(无论是 kerberos、DNS 还是 ssh),但如果每台机器都需要一些自定义配置,那么也可以。

例如$ ssh -v localhost

...
debug1: Unspecified GSS failure.  Minor code may provide more information
Server host/[email protected] not found in Kerberos database
...

编辑:

所以我的 /etc/hosts 文件有问题。如果我没记错的话,我最初获得的 Ubuntu 版本有两个 127.0. IP 地址,如下所示:-

127.0.0.1 localhost
127.0.*1*.1 hostname

毫无理由地,我很久以前就把我的改成了:

127.0.0.1    localhost
127.0.*0*.1    hostname.example.com hostname

在我尝试使用 ssh 和 kerberos(最近的尝试)之前,这似乎一切都运行良好。不知何故,这种配置导致 sshd 将机器的 kerberos 主体解析为“host/localhost@\n”,如果它使用 /etc/hosts 进行正向和反向 DNS 查找而不是外部 DNS,我想这是有道理的。所以我注释掉了后一行,sshd 神奇地开始使用 gssapi-with-mic 进行身份验证。太棒了。(然后我调查了 localhost 并提出了这个问题)

答案1

您可以使用名称规范化。

修改/etc/hosts成类似于:

127.0.0.1  hostname.domain.tld hostname localhost
::1        hostname.domain.tld hostname localhost

这样,localhost -> 127.0.0.1 -> hostname.domain.tld,服务器有一个 keytab 条目。

您必须在每台服务器上执行此操作。

相关内容