16.4. 检索多个服务器的现有 keytab
在某些情况下,如在集群环境中,不同机器在一个通用主机名上代表的服务需要相同的 keytab 文件。IdM 命令可用于检索每个主机上的同一 keytab。
要准备通用主机名和服务主体,请在 IdM 服务器上运行以下命令:
- 以
admin
用户身份进行身份验证:[root@ipaserver ~]# kinit admin
- 为共享此主机名的所有 IP 地址添加通用的转发 DNS 记录:
[root@ipaserver ~]# ipa dnsrecord-add idm.example.com cluster --a-rec={192.0.2.40,192.0.2.41} Record name: cluster A record: 192.0.2.40, 192.0.2.41
- 为通用 DNS 名称创建新主机条目对象:
[root@ipaserver ~]# ipa host-add cluster.idm.example.com ------------------------------------ Added host "cluster.idm.example.com" ------------------------------------ Host name: cluster.idm.example.com Principal name: host/cluster.idm.example.com@IDM.EXAMPLE.COM Password: False Keytab: False Managed by: cluster.idm.example.com
- 为主机添加服务主体:
[root@ipaserver ~]# ipa service-add HTTP/cluster.idm.example.com ------------------------------------------------------------ Added service "HTTP/cluster.idm.example.com@IDM.EXAMPLE.COM" ------------------------------------------------------------ Principal: HTTP/cluster.idm.example.com@IDM.EXAMPLE.COM Managed by: cluster.idm.example.com
- 将主机添加到服务中,该服务应该可以从 IdM 检索 keytab:
[root@ipaserver ~]# ipa service-allow-retrieve-keytab HTTP/cluster.idm.example.com --hosts={node01.idm.example.com,node02.idm.example.com} Principal: HTTP/cluster.idm.example.com@IDM.EXAMPLE.COM Managed by: cluster.idm.example.com Hosts allowed to retrieve keytab: node01.idm.example.com, node02.idm.example.com ------------------------- Number of members added 2 -------------------------
- 向一个主机授予创建新 keytab 的权限:
[root@ipaserver ~]# ipa service-allow-create-keytab HTTP/cluster.idm.example.com --hosts=node01.idm.example.com Principal: HTTP/cluster.idm.example.com@IDM.EXAMPLE.COM Managed by: cluster.idm.example.com Hosts allowed to retrieve keytab: node01.idm.example.com, node02.idm.example.com Hosts allowed to create keytab: node01.idm.example.com ------------------------- Number of members added 1 -------------------------
在客户端中,按照以下步骤执行:
- 使用主机 Kerberos keytab 进行身份验证:
# kinit -kt /etc/krb5.keytab
- 在您授予相应权限的客户端中,生成新的 keytab 并将其存储在文件中:
[root@node01 ~]# ipa-getkeytab -s ipaserver.idm.example.com -p HTTP/cluster.idm.example.com -k /tmp/client.keytab
- 在所有其他客户端中,通过向命令添加
-r
选项,从 IdM 服务器检索现有的 keytab:[root@node02 ~]# ipa-getkeytab -r -s ipaserver.idm.example.com -p HTTP/cluster.idm.example.com -k /tmp/client.keytab
警告请注意,如果省略-r
选项,将生成一个新 keytab。这会使之前检索到的所有 keytab 无效。