初始化 kadmin 界面时找不到领域的 KDC
Cannot find KDC for realm while initializing kadmin interface
给出以下 krb5.config(其中 FOOBAR.COM 是一个虚构的字符串)
[libdefaults]
renew_lifetime = 7d
forwardable = true
default_realm = FOOBAR.COM
ticket_lifetime = 24h
dns_lookup_realm = false
dns_lookup_kdc = false
default_ccache_name = /tmp/krb5cc_%{uid}
#default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
#default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
[domain_realm]
#Been messing around with this part
FOOBAR.COM = FOOBAR.COM
.FOOBAR.COM = FOOBAR.COM
[logging]
default = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
kdc = FILE:/var/log/krb5kdc.log
[realms]
FOOBAR.COM = {
admin_server = my_admin_server_hostname
kdc = my_kdc_hostname
}
用我的域名和其他参数调用 kadmin 不起作用。它找不到 kdc。
[kdc machine] kadmin -s localhost -p admin/admin@foobar.com -r FOOBAR.COM -q "get_principal admin/admin@foobar.com"
Authenticating as principal admin/admin@foobar.com with password.
kadmin: Cannot find KDC for realm "foobar.com" while initializing kadmin interface
但是首先访问 kadmin 是有效的(可能是因为它访问 kadmin.local?)
[kdc machine]# kadmin
Authenticating as principal admin/admin@FOOBAR.COM with password.
Password for admin/admin@FOOBAR.COM:
kadmin: get_principal admin/admin@foobar.com
get_principal: Principal does not exist while retrieving "admin/admin@foobar.com".
而且奇怪的是,省略主要标志也可以正常工作
[kdc machine]# kadmin -s localhost -r FOOBAR.COM -q "get_principal admin/admin@foobar.com"
Authenticating as principal admin/admin@FOOBAR.COM with password.
Password for admin/admin@FOOBAR.COM:
get_principal: Principal does not exist while retrieving "admin/admin@foobar.com".
我假设这是因为某些 DNS 问题,因为我的领域字符串 FOOBAR.COM 是一个虚构的地址。我一直在编辑我的 krb5.conf 和主机文件,试图解决这个问题,但没有取得太大成功。使用实际的 FQDN 而不是随机字符串作为域名不是一个选项。我不明白为什么省略 -p 会导致不同的结果...
有没有人知道如何让第一个查询正常工作?
好吧,看来问题出在指定主体 -p
这失败了:
-p admin/admin@holograph.tor.indexww.com
这成功了:
-p admin/admin
Kadmin 显然会自动在主体后添加域名,但失败了,与 'not finding the KDC server' 完全无关。
给出以下 krb5.config(其中 FOOBAR.COM 是一个虚构的字符串)
[libdefaults]
renew_lifetime = 7d
forwardable = true
default_realm = FOOBAR.COM
ticket_lifetime = 24h
dns_lookup_realm = false
dns_lookup_kdc = false
default_ccache_name = /tmp/krb5cc_%{uid}
#default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
#default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
[domain_realm]
#Been messing around with this part
FOOBAR.COM = FOOBAR.COM
.FOOBAR.COM = FOOBAR.COM
[logging]
default = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
kdc = FILE:/var/log/krb5kdc.log
[realms]
FOOBAR.COM = {
admin_server = my_admin_server_hostname
kdc = my_kdc_hostname
}
用我的域名和其他参数调用 kadmin 不起作用。它找不到 kdc。
[kdc machine] kadmin -s localhost -p admin/admin@foobar.com -r FOOBAR.COM -q "get_principal admin/admin@foobar.com"
Authenticating as principal admin/admin@foobar.com with password.
kadmin: Cannot find KDC for realm "foobar.com" while initializing kadmin interface
但是首先访问 kadmin 是有效的(可能是因为它访问 kadmin.local?)
[kdc machine]# kadmin
Authenticating as principal admin/admin@FOOBAR.COM with password.
Password for admin/admin@FOOBAR.COM:
kadmin: get_principal admin/admin@foobar.com
get_principal: Principal does not exist while retrieving "admin/admin@foobar.com".
而且奇怪的是,省略主要标志也可以正常工作
[kdc machine]# kadmin -s localhost -r FOOBAR.COM -q "get_principal admin/admin@foobar.com"
Authenticating as principal admin/admin@FOOBAR.COM with password.
Password for admin/admin@FOOBAR.COM:
get_principal: Principal does not exist while retrieving "admin/admin@foobar.com".
我假设这是因为某些 DNS 问题,因为我的领域字符串 FOOBAR.COM 是一个虚构的地址。我一直在编辑我的 krb5.conf 和主机文件,试图解决这个问题,但没有取得太大成功。使用实际的 FQDN 而不是随机字符串作为域名不是一个选项。我不明白为什么省略 -p 会导致不同的结果...
有没有人知道如何让第一个查询正常工作?
好吧,看来问题出在指定主体 -p
这失败了: -p admin/admin@holograph.tor.indexww.com
这成功了: -p admin/admin
Kadmin 显然会自动在主体后添加域名,但失败了,与 'not finding the KDC server' 完全无关。