我在 Linux 机器上设置了一个 Kerberos v5 服务器,它在连接到其他主机(使用 samba、ldap 或 ssh)时运行良好,我的 kerberos 数据库中有相应的主体。
我可以使用 kerberos 对本地主机进行身份验证吗?如果我可以,有什么理由不可以吗?我还没有为本地主机创建 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
在我尝试使用 kerberos 进行 ssh(最近的一次尝试)之前,这似乎对所有事情都能正常工作。这种配置不知何故导致 sshd 将机器的 kerberos 主体解析为“host/localhost@\n”,我认为如果它优先于外部 dns 使用 /etc/hosts 进行正向和反向 dns 查找,这是有道理的。所以我注释掉了后一行,sshd 神奇地开始使用 gssapi-with-mic 进行身份验证。惊人的。(然后我调查了localhost并提出了问题)
您可以使用名称规范化。
修改
/etc/hosts
使其类似于:这样 localhost -> 127.0.0.1 -> hostname.domain.tld,服务器有一个 keytab 条目。
您必须在每台服务器上执行此操作。