文档章节

Kerberos的那些报错汇总

问津已非少年
 问津已非少年
发布于 2017/08/16 11:45
字数 738
阅读 31
收藏 0

案例一:多线程访问启用了Kerberos的服务报错

情景:有一个采用了Kerberos认证的web服务,使用Jmeter对其进行压测,在web的日志里看到如下报错

错误如下GSSException: Failure unspecified at GSS-API level (Mechanism level: Request is a replay (34)) Caused by: KrbException: Request is a replay (34)

错误原因:当有 多个 客户端使用 同一principal 同时 向KDC请求认证的时候,Kerberos在 同一时间 能且仅能允许 一个 客户端通过认证!

这样就导致其他线程的连接是无法通过认证的,因而抛出上面的异常。所以在有大量需授权的任务的时候,最好每台机器使用不同的principal,避免多线程使用同一principal请求。

案例二: 证书已过期

错误如下GSSException: Failure unspecified at GSS-API level (Mechanism level: Specified version of key is not available (44))

错误原因:当前的keytab证书无效,keytab里存储的key已过期,这个通常是因为在KDC里重新导出过证书,而在导出证书的时候重新生成了密钥,需要把新的keytab文件拷贝过来重新kinit,或者导出证书的时候加上 -norandkey

案例三:没有证书

错误如下GSS initiate failed

错误原因:运行程序或请求服务时没有执行kinit操作,或程序里没有使用keytab和principal进行login

案例四:服务请求中没有证书

错误如下GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: "node2.xxx.com/172.21.0.189"; destination host is: "node1.xxx.com":8020;

错误原因:这个跟案例三的错误是一样的,都属于是没有证书,但是这里的更详细,我们需要学会去看到底是哪出了问题。从Host Details可以看出是node2向node3发起请求的时候认证不通过,那么说明是node2上没有证书,其次请求的端口是8020,由此可以看出是请求的HDFS服务,因为可以很快定位出问题在哪

案例五:时间不同步

错误如下GSSException: ClockSkew,这个错误由于当时没记下来,只记得这个clockskew的关键词,所以不完整

错误原因:从关键词可以看出,是时钟倾斜了,说明客户端和服务端的时间是不同步的,Kerberos有一个可允许的时间差,机器时间超过这个设定的时间差就会报错,把时间进行同步就好了

欢迎阅读转载,转载请注明出处:https://my.oschina.net/u/2539801/blog/1511055

© 著作权归作者所有

共有 人打赏支持
问津已非少年
粉丝 18
博文 21
码字总数 33944
作品 0
海淀
程序员
Cloudera Manager启用Kerberos失败问题求助

CDH版本5.7。 cloudera manager上启用Kerberos失败,配置文件如下: /etc/krb5.conf [libdefaults] default_realm = BIGDATA.COM dnslookuprealm = false dnslookupkdc = false ticket_life......

天降飞猫
2017/08/01
35
0
freeipa kinit 报错处理

freeipa 在添加用户时输入 kinit 报错,kinit: Client '' not found in Kerberos database while getting initial credentials,找不到kerberos 数据库。输入kinit admin 即可。...

酒瓶不倒
2014/12/12
0
0
解决安装mongoose时,node-gyp报错问题

安装mongoose是系统报错,显示找不到: 解决方法,安装缺少的库:

chenjihua
2016/01/03
48
0
centos6和centos7手动扩展PHP的IMAP模块

一、centos6.7 x64上手动扩展PHP的IMAP模块 1、准备 yum install -y libc-client-devel ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so ln -s /usr/lib64/libkrb5.so /usr/lib/li......

M四月天
2017/02/10
0
0
SQL Server配置delegation实现double-hop

参考文献 SQL Kerberos的原理及实验 SQL Server native client与sqlcmd单独安装 前言 在上一篇博客SQL Kerberos的原理及实验中讲到了windows验证的两种模式分别是NTLM和Kerberos,那么他们有...

嗯哼9925
2017/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

VS code编辑器安装 php7.2 NTS 版本 Xdebug

本文使用的是 phpstudy 一键安装包(windows32位) php 版本是 php7.2 NTS 1、在 phpstudy 面板中开启 phpdebug 扩展 // 其他选项菜单-> php 扩展与设置-> php 扩展 2、官方下载 Xdebug // ...

削个椰子皮_给个梨
24分钟前
1
0
Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下。如果您也碰到了同样的问题,希望本文对您有用。 问题...

程序猿DD
54分钟前
3
0
sql 命令

show variables like '%general%'; show variables like '%log_output%'; show variables like '%quer%'; show global status like '%slow%';...

JavaSon712
今天
4
0
Django修改默认数据库引擎

Django默认数据库引擎为sqlite3,除了sqlite3,还支持postgresql、mysql、oracle 配置如下:其中postgresql_psycopg2为postgresql的适配器。 'django.db.backends.postgresql' 'django.db.bac......

MichaelShu
今天
0
0
动画源码解析

目录介绍 1.Animation和Animator区别 2.Animation运行原理和源码分析 2.1 基本属性介绍 2.2 如何计算动画数据 2.3 什么是动画更新函数 2.4 动画数据如何存储 2.5 Animation的调用 3.Animator...

潇湘剑雨
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部