在Windows中使用Kerberos
最近在倒腾Kerberos的东西,在CDH集群中启用Kerberos时,只有Linux客户端能够正常使用,Windows就会出各种问题,再次记录一下虚拟机中Windows使用Kerberos的过程。
安装Kerberos客户端
For more information, please see the release page .
- 64-bit MSI Installer kfw-4.1-amd64.msi, 10812k.
- 32-bit MSI Installer kfw-4.1-i386.msi, 5836k.
- Sources kfw-4.1-src.zip, 7981k, detached signature kfw-4.1-src.zip.asc, 1k.
下载kfw-4.1-amd64.msi
后进行安装,安装过程一路无脑下一步即可。安装完成后会自动配置一个环境变量,但是它却追加到最后了,这里建议将其放在PATH
这个环境变量最前面。
配置Kerberos
将CDH集群中的/etc/krb5.conf
文件下载下来,打开C:\ProgramData\MIT\Kerberos5\krb5.ini
将/etc/krb5.conf
中的内容填入其中,例如:
1 | # Configuration snippets may be placed in this directory as well |
这里一定注意,实际上我们只需要将libdefaults
、realms
、domain_realm
这三个配置项拷贝进去即可。如果你是全部拷贝进去的,那么有关linux目录信息一定要注释掉,例如第一行的includedir /etc/krb5.conf.d/
。在libdefaults
中一定要加入udp_preference_limit=1
这个配置项,避免因为UDP的缘故无法与KDC进行通信。
配置host文件
由于krb5.ini
文件中的kdc
,admin_server
等都是主机名的形式进行配置的,那么此时就需要修改hosts,打开C:\Windows\System32\drivers\etc
中的hosts文件,加入如下内容:
1 | 10.10.11.3 ad.example.com ad |
生成票据
通常会提供一个keytab
的文件来进行认证,通过后会生成票据缓存,如果不提供keytab
那么也会提供一个账号密码来进行认证,具体如下所示。
keytab的形式
1 | kinit -k -t test.keytab test@EXAMPLE.COM |
如果很快就能执行通过,或者稍微卡顿一会儿那么就表示成功了。可以使用klist
命令来查看。
账号密码的形式
1 | kinit test@EXAMPLE.COM |
这两种方式都可以,认证通过后使用klist
命令可以查看该缓存的有效期已经续期截止日期。
1 | C:\Users\李阳>klist |
这里我在系统之配置了Ticket cache
的缓存路径,具体可以按照如下配置:
1 | 变量名: KRB5CCNAME |
我遇到了默认打开cmd命令窗口时,执行klist一直无效的问题,后来我cd c:\
后,再去执行又可以了。但是同事的电脑打开cmd默认就可以执行klist
。