Kerberos认证的kafka常见错误记录

kafka常见报错及解决方法(topic类、生产消费类、启动类) kafka常见问题及解决方法 启动报错 第一种错误 2017-02-17 17:25:29,224] FATAL Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) kafka.common.KafkaException: Failed to acquire lock ... 阅读详情
AI摘要

本文总结了Kerberos认证过程中常见的错误信息,包括principal和keytab不匹配、客户端和服务器时间不同步以及checksum失败等问题,并提供了相应的解决思路。

前言

发现网上与kerberos有关报错信息少之又少,踩过的坑放在这里,希望可以帮到后来人。

报错信息总结

1. principal和keytab不匹配,这种问题,只需要在jaas文件中指定正确的账号密码即可

Caused by: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user
        at com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:940)
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:760)
        at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:617)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
        at org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:60)
        at org.apache.kafka.common.security.kerberos.KerberosLogin.login(KerberosLogin.java:103)
        at org.apache.kafka.common.security.authenticator.LoginManager.<init>(LoginManager.java:61)
        at org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:111)
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:149)
        ... 7 more

2. 客户端和服务器系统时间不匹配的问题

Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Clock skew too great (37) - PROCESS_TGS)]
        at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211)
        at org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.lambda$createSaslToken$1(SaslClientAuthenticator.java:466)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.createSaslToken(SaslClientAuthenticator.java:466)
        at org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.sendSaslClientToken(SaslClientAuthenticator.java:373)
        at org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.sendInitialToken(SaslClientAuthenticator.java:292)
        at org.apache.kafka.common.security.authenticator.SaslClientAuthenticator.authenticate(SaslClientAuthenticator.java:232)
        at org.apache.kafka.common.network.KafkaChannel.prepare(KafkaChannel.java:173)
        at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:547)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:483)
        at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:539)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:262)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:233)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:212)
        at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:249)
        at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:326)
        at org.apache.kafka.clients.consumer.KafkaConsumer.updateAssignmentMetadataIfNeeded(KafkaConsumer.java:1251)
        at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1216)
        at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1201)
    at com.zero.KafConsumer.main(KafConsumer.java:47)
    Caused by: GSSException: No valid credentials provided (Mechanism level: Clock skew too great (37) - PROCESS_TGS)
        at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:770)
        at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:248)
        at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
        at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:192)
        ... 20 more
    Caused by: KrbException: Clock skew too great (37) - PROCESS_TGS
        at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:73)
        at sun.security.krb5.KrbTgsReq.getReply(KrbTgsReq.java:251)
        at sun.security.krb5.KrbTgsReq.sendAndGetCreds(KrbTgsReq.java:262)
        at sun.security.krb5.internal.CredentialsUtil.serviceCreds(CredentialsUtil.java:308)
        at sun.security.krb5.internal.CredentialsUtil.acquireServiceCreds(CredentialsUtil.java:126)
        at sun.security.krb5.Credentials.acquireServiceCreds(Credentials.java:458)
        at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:693)
        ... 23 more
    Caused by: KrbException: Identifier doesn't match expected value (906)
        at sun.security.krb5.internal.KDCRep.init(KDCRep.java:140)
        at sun.security.krb5.internal.TGSRep.init(TGSRep.java:65)
        at sun.security.krb5.internal.TGSRep.<init>(TGSRep.java:60)
        at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:55)
        ... 29 more

3. 用户的keytab更新导致出现checksum failed。即principal的密码被更新了,但是程序中使用的还是旧的密码就会出现这个错误
    

Exception in thread "main" org.apache.kafka.common.KafkaException: Failed to construct kafka consumer
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:827)
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:664)
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:644)
        at com.zero.KafConsumer.main(KafConsumer.java:43)
    Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Checksum failed
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:160)
        at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:146)
        at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:67)
        at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:99)
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:741)
        ... 3 more
    Caused by: javax.security.auth.login.LoginException: Checksum failed
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:804)
        at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:617)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
        at org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:60)
        at org.apache.kafka.common.security.kerberos.KerberosLogin.login(KerberosLogin.java:103)
        at org.apache.kafka.common.security.authenticator.LoginManager.<init>(LoginManager.java:61)
        at org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:111)
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:149)
        ... 7 more
    Caused by: KrbException: Checksum failed
        at sun.security.krb5.internal.crypto.Aes128CtsHmacSha1EType.decrypt(Aes128CtsHmacSha1EType.java:102)
        at sun.security.krb5.internal.crypto.Aes128CtsHmacSha1EType.decrypt(Aes128CtsHmacSha1EType.java:94)
        at sun.security.krb5.EncryptedData.decrypt(EncryptedData.java:175)
        at sun.security.krb5.KrbAsRep.decrypt(KrbAsRep.java:149)
        at sun.security.krb5.KrbAsRep.decryptUsingKeyTab(KrbAsRep.java:121)
        at sun.security.krb5.KrbAsReqBuilder.resolve(KrbAsReqBuilder.java:285)
        at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:361)
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:776)
        ... 24 more
    Caused by: java.security.GeneralSecurityException: Checksum failed
        at sun.security.krb5.internal.crypto.dk.AesDkCrypto.decryptCTS(AesDkCrypto.java:451)
        at sun.security.krb5.internal.crypto.dk.AesDkCrypto.decrypt(AesDkCrypto.java:272)
        at sun.security.krb5.internal.crypto.Aes128.decrypt(Aes128.java:76)
        at sun.security.krb5.internal.crypto.Aes128CtsHmacSha1EType.decrypt(Aes128CtsHmacSha1EType.java:100)
        ... 31 more

 

spark消费kafka(cdh启用kerberos) 不生产博客,只是别人博客的裁缝 一入kerberos深似海,从此节操是个玩意儿 之前写过一篇spark消费kafka问题记录(cdh5.16.2),主要记录了安装spark2后,spark的问题,和本地可以执行,而一提集群缺包的问题,这篇主要记录下启用kerberos后的一些问题 版本信息如下 集群启用kerberos后,想用命令行测下kafka kafka-topics --cre... 阅读详情

相关推荐

Kerberos认证下的Kafka集群:如何解决‘Server not found in Kerberos database‘错误

本文深入解析了在配置Kerberos认证的Kafka集群时,常见的'Server not found in Kerberos database'错误。核心原因在于客户端构造的服务主体名称(Principal)与KDC数据库中的记录不匹配,尤其是`sasl.kerberos.service.name`配置与主机名解析不一致。文章提供了从KDC、Broker到客户端的全方位检查清单、实战诊断方法及高级场景解决方案,帮助运维人员彻底解决此认证难题。

honey的博客 540

kafka开kerberos认证报错the client is being asked for a password

在Kafka工程 且开 kerberos 时,遇到报错:Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user.

鸣一的专栏 8693

华为Kafka Kerberos认证踩坑实录:如何解决sun.security.krb5.KrbException报错

本文深度解析了在对接启用Kerberos认证的华为Kafka集群时,如何排查并解决常见的 `sun.security.krb5.KrbException: Server not found` 报错。文章从认证原理入手,提供了一套从基础环境校验、配置核验到依赖库冲突排查的系统性解决方案,并特别指出了华为定制化Jar包这一关键“深坑”,帮助开发者实现稳定连接。

redis7keeper的博客 651

org.apache.kafka.common.KafkaException: Failed to construct kafka producer

详情: org.apache.kafka.common.KafkaException: Failed to construct kafka producer Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Cannot locate default realm Caused by: javax.security.auth.login.LoginException: C

m0_60725291的博客 4298

别再被`sasl.kerberos.service.name`坑了!手把手教你配置Kafka+Kerberos认证(附完整排错指南)

本文深入解析Kafka与Kerberos认证的集成机制,重点解决`sasl.kerberos.service.name`配置难题。通过详细步骤和排错指南,帮助开发者正确配置Kafka+Kerberos认证,避免常见错误,提升分布式系统的安全性。

weixin_29327977的博客 258

Kafka Kerberos认证实战:从Principal配置到Java API集成

本文详细介绍了Kafka Kerberos认证的实战配置,从Principal创建、服务端配置到Java API集成。重点解析了`sasl.kerberos.service.name`与Principal的匹配关系,提供了生产级配置示例和常见问题排查方法,帮助开发者快速实现安全的Kafka认证体系。

weixin_29158413的博客 299

Kerberos原理安装集成kafka例子

目录 Kerbeos简介 Kerbeos认证流程 Kerberos安装步骤 kerberos简单操作 Kafka集成Kerberos例子 本地环境java客户端消费测试代码 错误记录 Kerbeos简介 Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证,认证通过后的节点才能提供服务。企图冒充的节点由于没...

m0_37911384的博客 5216

Kafka Kerberos认证实战:从配置到Java API的完整指南

本文详细介绍了Kafka Kerberos认证的完整配置流程,从服务端到客户端的实战指南。涵盖关键参数sasl.kerberos.service.name的配置、Java API集成以及常见问题排查技巧,帮助企业级用户构建安全的Kafka集群认证体系。

weixin_30550081的博客 126

kafka开启kerberos认证

历时两天,断断续续的终于能正常producer和consumer了,记录下。 采用的是ambari,直接按照官方文档部署,需要更改的地方: 1、遇到这个错误: ERROR Error when sending message to topic test with key: null, value: 3 bytes with error: (org.apache.kafka.clients.p...

mine_1的专栏 4428

华为Kafka Kerberos认证踩坑实录:如何解决‘sun.security.krb5.KrbException‘报错

本文记录了解决华为Kafka集群Kerberos认证中'sun.security.krb5.KrbException: Server not found in Kerberos database'报错的完整过程。文章从基础环境排查入手,逐步深入,最终定位到问题根源在于客户端JAR包兼容性,并提供了替换华为定制版Kafka及ZooKeeper依赖的具体解决方案,帮助开发者实现稳定连接。

weixin_29038303的博客 305

Kafka Kerberos认证实战:手把手解决`sasl.kerberos.service.name`配置与主机域名那些坑

本文深入解析Kafka Kerberos认证中的关键配置`sasl.kerberos.service.name`与主机域名解析的常见问题,提供从服务端到客户端的完整避坑指南。通过详细的错误排查表、配置检查清单和高级场景解决方案,帮助开发者高效解决认证难题,确保Kafka集群安全稳定运行。

weixin_32736961的博客 304

Ambari+HDP集群关闭kerberos认证后遇到的问题

文章目录集群环境操作场景场景一问题及解决方法Hive服务无法启动Hbase服务启动不了Kakfa服务启动不了场景二问题及解决方法HDFS使用hadoop fs 指令出错重启YARN出错HDFS的Datanode不可用跑测试mr出错 集群环境 这里使用的场景是Ambari:2.5.2+HDP:2.6.4 在开启kerberos论证服务后,安装过的Hadoop系列组件均可正常使用,包括hdfs、map...

我的博客 3028

华为认证-- Kafka SASL认证失败:深入解析sun.security.krb5.KrbException与Kerberos配置

本文深入解析华为FusionInsight平台上Kafka SASL认证失败问题,特别是`sun.security.krb5.KrbException`错误。通过分析Kerberos认证机制、华为环境下的特殊处理及完整解决方案,帮助开发者快速定位和解决Kafka认证问题,提升系统集成效率。

weixin_29184371的博客 388

Kafka安全认证实战:SASL/GSSAPI(Kerberos)配置全解析

本文详细解析了Kafka集群如何配置SASL/GSSAPI(Kerberos)安全认证,以保护敏感数据。内容涵盖从KDC创建主体、生成Keytab、编写JAAS配置文件,到配置Kafka Broker、ZooKeeper以及客户端的全流程实战步骤,并提供了关键的避坑指南与生产环境最佳实践,帮助企业构建坚实的数据安全基石。

o0p1q2r3的博客 199

【kafka】kerberos client is being asked for a password not available to garner authentication informa

1.概述 首先参考kafka的配置环境:【kafka】kerberos认证下 kafka 报错Bootstrap broker host:ip (id: -1 rack: null) disconnected ,然后我想在本地消费试试。 但是报错 Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password

九师兄 3191

【kafka】kerberos认证下 kafka 报错Bootstrap broker host:ip (id: -1 rack: null) disconnected

1.概述 本博文中的IP都是随便写的。 公司整了一个新的环境,然后我要进行适配,结果发现对方有认证,无法直接使用,使用控制台生产和消费的时候报错。 [domain_realm][root@10-sh kafka-console-producer.sh --broker-list 12.12.12.27:9092 --topic topic-test1 >xx [2022-01-05 13:21:28,723] WARN [Producer clientId=console-producer] Boot

九师兄 1万+

Kerberos认证失败?华为Kafka客户端与开源版本兼容性深度解析

本文深入解析华为Kafka客户端与开源版本在Kerberos认证上的兼容性问题,特别是常见的`sun.security.krb5.KrbException`错误。通过对比协议栈实现差异、提供五层诊断法和迁移实施方案,帮助开发者解决认证失败问题,确保系统平稳迁移至华为大数据平台。

weixin_33737774的博客 208

【kafka】kerberos Server not found in Kerberos database LOOKING_UP_SERVER Identifier doesn‘t match

【kafka】kerberos认证下 kafka 报错Bootstrap broker host:ip (id: -1 rack: null) disconnected,然后我想在本地消费试试。

九师兄 3946
上一篇: Kafka删除主题详解
下一篇: Kerberos认证原理
iFence
博客等级 码龄9年 8051粉丝 111原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值