目录
1.简介
2. kinit:获取Kerberos票据
3. klist:查看Kerberos票据
4 ktab:管理Kerberos密钥表
5.hive连接一些常见的报错
5.1. Unable to obtain password from user
5.2 unknown host
5.3 No valid credentials provided (Mechanism level: Failed to find any Kerberos Ticket)
1.简介
Kerberos是一种广泛使用的网络认证协议,它旨在通过密钥加密技术为客户端和服务端之间的通信提供安全保障。Kerberos的核心思想是通过一个可信的第三方——Key Distribution Center (KDC)来进行身份验证和票据分发。本文将深入探讨Kerberos中常用的三个工具:kinit、klist和ktab,分析它们的功能、用法以及在实际应用中的场景。
2. kinit:获取Kerberos票据
kinit是Kerberos工具集中最基础的工具之一,用于获取Kerberos票据授权票(Ticket-Granting Ticket, TGT)。用户必须首先在KDC注册为一个principal(主体),然后才能使用kinit获取TGT。获取TGT是使用Kerberos进行认证的第一步。
-
命令语法:
kinit [选项] [principal] [password]
-
选项说明:
-A
:不包含地址信息。-f
:请求可转发的票据。-p
:请求可代理的票据。-c
:指定缓存名称。-k
:使用keytab文件认证。-t
:指定keytab文件路径。
-
应用场景:
- 用户登录:用户登录时使用kinit获取TGT,以便后续访问Kerberos保护的服务。
- 服务启动:服务在启动时使用kinit获取服务的TGT,以便能够接受来自客户端的Kerberos认证请求。
3. klist:查看Kerberos票据
klist是用于查看本地Kerberos票据缓存和keytab文件中条目的工具。它是验证和调试Kerberos配置的有用工具。
-
命令语法:
klist [选项] [文件名]
-
选项说明:
-c
:列出凭据缓存条目。-f
:显示凭据标志。-e
:显示加密类型。-k
:列出keytab条目。-t
:显示keytab条目的时间戳。
-
应用场景:
- 调试:在配置或调试Kerberos环境时,使用klist查看票据缓存和keytab文件,确认正确的票据和密钥是否已被获取和存储。
- 监控:在安全监控中,定期使用klist检查票据的有效性和过期时间,以确保系统的安全性。
4 ktab:管理Kerberos密钥表
ktab工具用于管理存储在本地keytab文件中的主体名称和服务密钥。keytab文件是Kerberos认证中的关键组件,它存储了服务的长期密钥。
-
命令语法:
ktab [选项]
-
选项说明:
-l
:列出keytab中的条目。-a
:向keytab添加条目。-d
:从keytab删除条目。-e
:显示条目的加密类型。-t
:显示条目的时间戳。
-
应用场景:
- 服务配置:在配置Kerberos认证的服务时,使用ktab向keytab文件中添加服务的principal和密钥。
- 密钥更新:当服务的密钥需要更新时,使用ktab删除旧的条目并添加新的条目。
- 安全管理:定期检查和管理keytab文件中的条
5.hive连接一些常见的报错
5.1. Unable to obtain password from user
用户名密码有问题,重新生成 keytab文件
5.2 unknown host
conf文件中的realms标签下的kdc,master_kdc,admin_server三个域名和对应的ip配置到/etc/hosts文件下
5.3 No valid credentials provided (Mechanism level: Failed to find any Kerberos Ticket)
-Djavax.security.auth.useSubjectCredsOnly=false
5.4 其他需要注意的事情
另外。票据是有有效期的,所以我们可以做一些corn等操作,去循环续签