当我尝试在 ubuntu 桌面客户端机器上使用 kinit clientnorbert@ubunturealm 获取票证时,我从 ubuntu 服务器收到此消息,并且 /etc/hosts 和 krb5.conf 中包含所有相关组件。
kinit: Cannot contact any KDC for realm 'ubunturealm' while getting initial credentials
[libdefaults]
default_realm = ubunturealm
# The following krb5.conf variables are only for MIT Kerberos.
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
rdns = false
# The following libdefaults parameters are only for Heimdal Kerberos.
fcc-mit-ticketflags = true
[realms]
ubunturealm = {
kdc = serverkerberos
admin_server = adminserverkerberos
default_doomian = ubuntunorbert
以及我的 ubuntu 服务器上的 krb5.conf
[libdefaults]
default_realm = ubunturealm
dns_lookup_realm = true
dns_lookup_kdc = true
dns_canonicalize_hostname = true
dns_uri_lookup = true
rdns = true
[realms]
ubunturealm = {
kdc = serverkerberos
admin_server = adminserverkerberos
default_domain = ubuntunorbert
两台机器上的 /etc/hosts 看起来类似这样。两台机器都可以 Ping。
127.0.0.1 localhost
127.0.1.1 ubuntuserver.com
10.0.2.5 ubunturealm
10.0.2.5 serverkerberos
10.0.2.5 adminserverkerberos
10.0.2.5 ubuntumailsystem
127.0.0.1 ubuntumailsystem
10.0.2.5 ubuntuserver.com
10.0.2.6 clientnorbert.com
我在 NatNetwork 使用 virtualbox,ubuntu 服务器
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.10
Release: 23.10
Codename: mantic
Kinit、klist、kadmin、kadmin.local 和授予票证在服务器上工作,而不是在客户端上。
答案1
- 请使用正常域名,不要使用虚假的一级域名。
- 不要劫持公共域名中的名称;如果您不拥有“ubuntuserver.com”之类的名称,就不要假装它们是您自己的。
- 正确设置 DNS,不要依赖
hosts
。正确设置 DNS SRV 记录。这尤其有用,因为您已在krb5.conf
- 不要保留
127.0.1.1
服务器“公共”名称的主机条目。仅使用其他主机可以访问此服务器的地址。我知道,它是由安装程序放在那里的;删除它。 - 有一个惯例:领域名称应该是大写的(主)域名。
这种简单的整理可以创造奇迹。你甚至可能在不知道问题到底是什么的情况下就解决了问题。纪律很有用。