标签: keytab

使用--negotiate with curl时,是否需要keytab文件?

描述如何连接到kerberos安全端点的文档显示以下内容:

curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=..."
Run Code Online (Sandbox Code Playgroud)

-u必须提供该标志,但curl会忽略该标志.

--negotiate选项是否导致curl查找事先使用该kinit命令创建的keytab ,或者是否会卷曲提示输入凭据?

如果它查找keytab文件,该命令将查找哪个文件名?

curl hadoop kerberos webhdfs keytab

25
推荐指数
2
解决办法
4万
查看次数

究竟什么是keytab?

我试图理解Kerberos是如何工作的,因此遇到了一个名为Keytab的文件,我相信它用于对KDC服务器进行身份验证.

就像kerberos领域中的每个用户和服务(比如说Hadoop)都有服务主体一样,每个用户和服务都有一个keytab文件吗?

此外,使用keytab进行身份验证是否适用于对称密钥加密或公钥 - 私钥?

security authentication hadoop kerberos keytab

11
推荐指数
1
解决办法
1万
查看次数

脚本Kerberos Ktutil来制作键盘

我想创建一个脚本,使用ktutil生成一个keytab.运行脚本时,我想使用[user] $ script.sh PASSWORD

#script.sh
echo "addent -password -p PRINCIPAL -k 1 -e aes256-cts-hmac-sha1-96" | ktutil
Run Code Online (Sandbox Code Playgroud)

Ktutil比需要密码,这里我想使用上面的PASSWORD参数.我如何通过密码辩论?

passwords bash kerberos pipe keytab

10
推荐指数
1
解决办法
8937
查看次数

将kinit与keytab文件一起使用时会发生什么

希望更多地了解kinit和keytab文件的使用.例如,如果我已经为服务生成了一个keytab文件(通过ktpass -mapuserto 注册到活动目录的服务someuseraccount)

ktab -k "mykeytab" -a <someprincipal>
Run Code Online (Sandbox Code Playgroud)

当用户调用USERA登录到Windows并使用此密钥表作为kinit的输入参数时,真正发生了什么?

kinit -k -t "mykeytab" <someprincipal>
Run Code Online (Sandbox Code Playgroud)

是否 为当前登录kinit生成初始凭据?someprincipalUSERA

希望你能清除我的这种困惑.谢谢

windows kerberos active-directory jaas keytab

6
推荐指数
1
解决办法
1万
查看次数

keytab有一辈子吗?

我有一个keytab,计划每天运行(只需一次)来更新它的票.但是,我想知道keytab本身是否有任何生命周期?我认为它没有,因为cron作业已被配置为每天执行,我认为将创建一个新的票而不是更新?

linux kerberos keytab

6
推荐指数
1
解决办法
3426
查看次数

使用Kerberos keytab通过Beeline连接到Hive

是否可以通过直线连接到Hive使用(kerberos)keytab文件,类似于JDBC中使用的方法

https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-UsingKerberoswithaPre-AuthenticatedSubject

PS:beeline确实支持使用用户名和密码连接kerberos安全的蜂巢服务器.但我正在寻找一种方法来连接它与keytab文件. http://doc.mapr.com/display/MapR40x/Configuring+Hive+on+a+Secure+Cluster#ConfiguringHiveonaSecureCluster-UsingBeelinewithKerberos

hadoop hive kerberos keytab

6
推荐指数
1
解决办法
2万
查看次数

指定SPN的正确格式是什么?

首先,使用setspn命令为用户注册服务主体名称。

setspn -a CS/dummy@abc.com虚拟用户

setspn -l虚拟用户

给出输出为

CS/dummy@abc.com

接下来,当使用/ mapUser选项执行ktpass命令时,将修改用户帐户的服务主体名称,以便删除域组件。

ktpass / pass Password @ 123 -out dummy.1.keytab -princ CS/dummy@abc.com -crypto DES-CBC-MD5 + DumpSalt -ptype KRB5_NT_PRINCIPAL + desOnly / mapOp set / mapUser dummyuser

setspn -l虚拟用户

给出输出为

CS /虚拟

以下两个命令是否正确并且以相同的方式工作?

setspn -a CS /虚拟虚拟用户

setspn -a CS/dummy@abc.com虚拟用户

在SPN中指定服务名称时,是否也必须包含域组件?你能澄清一下吗?

spn kerberos keytab

6
推荐指数
1
解决办法
683
查看次数

预身份验证失败:获取初始凭据时密码读取中断

这是我遇到的事情,我找到了解决方案。由于没有任何问题,我将其作为问题发布,并将我的解决方案作为答案。

环境:

  • 操作系统:Centos Linux、MacOS (Big Sur)
  • 集群:Cloudera Hadoop 发行版,
  • 工具:Kerberos

问题

我通过“ktutil”创建了“user.keytab”文件来更新没有密码的 krb 票证,正如这里推荐的那样https://kb.iu.edu/d/aumh

ktutil:  addent -password -p user@DOMAIN.LOCAL -k 1 -e rc4-hmac
Password for user@DOMAIN.LOCAL: [enter your password]
ktutil:  addent -password -p user@DOMAIN.LOCAL -k 1 -e aes256-cts
Password for user@DOMAIN.LOCAL: [enter your password]
ktutil:  wkt user.keytab
ktutil:  quit
Run Code Online (Sandbox Code Playgroud)

然后测试以异常告终

(user@server [~])$ kinit user@DOMAIN.LOCAL -k -t user.keytab
kinit: Preauthentication failed while getting initial credentials
Run Code Online (Sandbox Code Playgroud)

linux hadoop kerberos keytab

6
推荐指数
1
解决办法
1万
查看次数

keytab如何正常工作?

我有一些关于使用keytab进行身份验证的问题,希望这里的人能够帮助我

比如,我有userA谁将使用在端口1010上运行的服务.首先,userA将登录到Active Directory以验证自己.

在此输入图像描述

登录后,userA将尝试连接到服务器以使用其服务1010.为了使服务器验证UserA是谁,我需要使用setspn在Active Directory中注册SPN.例如

setspn -s service1010/mydomain.com serviceaccount1
Run Code Online (Sandbox Code Playgroud)

然后需要在Active目录下生成ktab文件,例如

ktab -a serviceprincal1010/server.domain.com@DOMAIN.COM -k mykeytab.keytab
Run Code Online (Sandbox Code Playgroud)

然后带到mykeytab.keytab服务器.

在服务器上,我会使用带有登录配置的JAAS来查询KDC,例如

ServicePrincipalLoginContext
{
  com.sun.security.auth.module.Krb5LoginModule required    
  principal=serviceprincal1010/server.domain.com@DOMAIN.COM 
  doNotPrompt=true useKeyTab=true keyTab=mykeytab.keytab storeKey=true;

};
Run Code Online (Sandbox Code Playgroud)

从这一刻起,我很困惑.userA如何得到验证(即,userA实际上是谁?).

java authentication kerberos jaas keytab

5
推荐指数
2
解决办法
5723
查看次数

JSch无法通过Kerberos密钥表文件连接

我构建了一个Java应用程序,该应用程序通过ssh运行命令。在第一次尝试中,我通过用户名和密码进行了身份验证,并且一切正常。

现在,我想使用Kerberos keytab文件进行身份验证,但这会带来问题!

这里是我的配置几句话:

  • KDC服务器: my-server.de
  • 领域名称: MYREALM.DE
  • Keytab用户名: keytabuser
  • KDC =服务器:运行在 CentOS 7
  • 我的客户端:安装Windows 8.1 (x64)了所有默认配置Kerberos for Windows
  • 我在客户端上的用户名: Daniel
  • kinit -kt ... 似乎工作正常,因此keytab文件也应该没问题

到目前为止,我的代码片段是:

public static void main(String[] args) {
        String host = "my-server.de";
        String user = "keytabuser";
        String  command = "ls -l";

        JSch jsch = new JSch();
        jsch.setLogger(new MyLogger());

        System.setProperty("java.security.krb5.conf", "C:\\ProgramData\\MIT\\Kerberos5\\krb5.ini");
        System.setProperty("java.security.auth.login.config", "C:\\ProgramData\\MIT\\Kerberos5\\jaas.conf");
        System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");

        //to enable kerberos debugging mode
        System.setProperty("sun.security.krb5.debug", "true");

        try {
            Session session = jsch.getSession(user, host, 22);
            Properties config = new …
Run Code Online (Sandbox Code Playgroud)

ssh kerberos jsch jaas keytab

5
推荐指数
1
解决办法
1163
查看次数

标签 统计

kerberos ×10

keytab ×10

hadoop ×4

jaas ×3

authentication ×2

linux ×2

active-directory ×1

bash ×1

curl ×1

hive ×1

java ×1

jsch ×1

passwords ×1

pipe ×1

security ×1

spn ×1

ssh ×1

webhdfs ×1

windows ×1