我在看这个:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/kinit.html
并注意到它说我可以使用“密码标志”。我不知道怎么做这个?
我可以输入kinit的密码而不提示我吗?
例如目前,
如果我输入:
kinit test@REALM
我得到回应:
test@REALM's password:
我必须输入密码。 无论如何我可以输入像 kinit test @ REALM密码这样的东西,所以它不会提示我吗?
谢谢!
答案 0 :(得分:43)
你也可以
回显“密码”| kinit用户名
答案 1 :(得分:14)
使用该主体的密钥表!
答案 2 :(得分:3)
您可能能够确切地依赖于您正在使用的kinit,但这是一个非常糟糕的主意。该系统上的任何人都可以读取进程表和ARGV以获取任何命令,从而暴露您的密码。
大多数kinit实现都不支持这个原因。
你在Window的盒子还是Unix盒子上还不完全清楚?
无论哪种方式,处理此问题的正确方法是使用密钥表。
Keytabs存储主体的密钥(不是密码)。在kerberos中 password用于生成实际使用的更随机的密钥 密码交换。创建/操作keytabs的命令通常是
ktutil
答案 3 :(得分:3)
从feldvers这个被删除的答案中被删除了#34;太简洁" (LOL)
有两种流行的kerberos客户端套餐:MIT和Heimdal。 Heimdal是MacOS附带的,但MIT是参考实现。在Heimdal客户端上,您可以使用--password-file
标志:
kinit --password-file=~/mypasswordfile test@REALM
这样可以避免将密码泄露到进程列表中,"从first line的文件名中读取密码。"
您可以选择
--password-file=STDIN
并将其输入,cat password_file | kinit --password-file=STDIN test@REALM
还可以避免将密码泄露给ps列表。
在MacOS上,您还可以使用keychain选项。
您可以使用kinit --version
检查您拥有的客户端类型。如果--version
标志无法识别,您很可能拥有MIT客户端; Heimdal客户似乎太认识了旗帜并报告了一个版本。
请注意,Ubuntu将其默认从Heimdal实现切换到14.04和16.04之间的MIT。另外,一般来说,这两个包conflict with one another。
答案 4 :(得分:1)
使用“ ktutil”创建密钥表
> ktutil
ktutil: addent -password -p username@domain.com -k 1 -e rc4-hmac
Password for username@domain.com: [enter your password]
ktutil: addent -password -p username@domain.com -k 1 -e aes256-cts
Password for username@domain.com: [enter your password]
ktutil: wkt username.keytab
ktutil: quit
# Below steps will will create a keytab for the user, move it into a secure directory,
and automatically get a ticket when the user logs in with a bash shell
mkdir /home/username/keytabs
chmod 700 /home/username/keytabs
mv username.keytab /home/username/keytabs
chmod 600 /home/username/keytabs/username.keytab
echo "kinit -kt /home/username/keytabs/username.keytab username@domain.com" >> /home/username/.bash_profile
传递密钥标签并登录的命令
kinit username@domain.com -k -t /path/to/username.keytab
参考链接hortonworks kb.iu.edu