【问题标题】:Datastax with Kerberos - TTransportNegotiationException使用 Kerberos 的 Datastax - TTransportNegotiationException
【发布时间】:2014-02-04 00:06:14
【问题描述】:

我在从 cassandra-cli 连接到启用 kerberos 的 Datastax 时遇到以下两个异常:-

  1. ERROR [Thrift:1] 2013-09-03 11:01:01,025 CustomTThreadPoolServer.java(第 210 行)处理消息时出错。 java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: 初始化安全上下文失败

  2. ERROR [Thrift:2] 2013-09-03 11:01:01,061 TNegotiatingServerTransport.java(第 291 行)传输协商期间发生错误 com.datastax.bdp.transport.common.TTransportNegotiationException:请求的身份验证类型不正确。请求的身份验证:不使用服务主体进行身份验证:FRAMED_TRANSPORT_FAKE_PRINCIPAL,允许的身份验证:Kerberos

【问题讨论】:

    标签: datastax-enterprise


    【解决方案1】:

    此问题可能是由错误配置的 Kerberos 引起的。就在最近,我们发现 kerberos 相关问题的错误报告有时会产生误导,因为如果 kerberos 连接首先失败,客户端会尝试在没有 kerberos 的情况下进行连接。不幸的是,仅记录了该回退尝试的异常,而不是原始错误。这将在下一个补丁版本 (3.1.4) 中修复。

    你能尝试连接吗

    cassandra-cli -tr com.datastax.bdp.transport.client.TKerberosClientTransportFactory 
    

    禁用 no-kerberos 回退,然后看看有什么错误?您可能还想查看 system.log 并检查服务器试图告诉您的信息。

    【讨论】:

      【解决方案2】:

      第二个错误表示cassandra-cli连接不安全:

      Requested auth: No authentication with service principal: FRAMED_TRANSPORT_FAKE_PRINCIPAL
      Allowed auth: Kerberos
      

      您是从安全 DSE 集群中的一个节点运行 cassandra-cli,还是从集群外的远程计算机运行 cassandra-cli?

      【讨论】:

      • 是的,我正在使用 kerberos 票证从集群节点本身运行它。
      猜你喜欢
      • 2014-03-05
      • 2014-02-20
      • 2013-10-24
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 2017-10-19
      • 2019-06-02
      • 1970-01-01
      相关资源
      最近更新 更多