Macos 在没有提示的情况下输入密码
我看着这个:注意到它说我可以使用“密码标志”。但我不知道该怎么做 我可以在不提示的情况下输入kinit的密码吗 例如,目前: 如果我输入:Macos 在没有提示的情况下输入密码,macos,kerberos,Macos,Kerberos,我看着这个:注意到它说我可以使用“密码标志”。但我不知道该怎么做 我可以在不提示的情况下输入kinit的密码吗 例如,目前: 如果我输入: $ kinit test@REALM 我得到的答复是: test@REALM's password: 我必须输入密码。我可以输入像kinit这样的东西吗test@REALM密码,这样它就不会提示我了?使用该主体的键表 详细信息:如何创建服务键选项卡 有多种方法,但我将假设如下:您正在运行Active Directory作为KDC实现,后端运行在Unix
$ kinit test@REALM
我得到的答复是:
test@REALM's password:
我必须输入密码。我可以输入像kinit这样的东西吗test@REALM密码,这样它就不会提示我了?使用该主体的键表 详细信息:如何创建服务键选项卡 有多种方法,但我将假设如下:您正在运行Active Directory作为KDC实现,后端运行在Unix或类似Unix的操作系统上,如CentOS、FreeBSD、HP-UX等。您还安装了MIT Kerberos或Heimdal,并且正确配置了
krb5.conf
通过软件包/端口管理器安装或从源代码处编译。如果选择编译,请确保计算机上存在所有依赖项
现在运行mskutil
:
$ /usr/local/sbin/msktutil update --verbose --use-service-account --account-name <samAccountName> \
--old-account-password <password> --dont-change-password --keytab <path>
现在,用kinit检查您的键选项卡:
$ kinit -k -t uawet8er.keytab uawet8er
$ klist
Ticketzwischenspeicher: FILE:/tmp/krb5cc_722
Standard-Principal: uawet8er@AD.EXAMPLE.COM
Valid starting Expires Service principal
24.07.2019 13:15:45 24.07.2019 23:15:45 krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM
erneuern bis 25.07.2019 13:15:45
这个键表现在可以与JGSS的login.conf
或KRB5_-CLIENT_-KTNAME
和MIT Kerberos一起使用了。您也可以
$ echo 'password' | kinit username
你也许可以根据你使用的kinit来决定,但这是一个非常糟糕的主意。该系统上的任何人都可以读取任何命令的进程表和ARGV,因此您的密码将被公开 正是由于这个原因,kinit的大多数实现都不支持这一点 还不完全清楚您是在Windows的盒子上还是在Unix的盒子上 无论哪种方法,处理此问题的正确方法都是使用键选项卡 键选项卡存储主体的密钥(而不是密码)。在kerberos中 密码用于生成一个更随机的密钥,该密钥实际用于 加密交换。创建/操作键选项卡的命令通常是
ktutil
有两个流行的Kerberos客户端包:MIT和Heimdal。Heimdal是MacOS附带的,但MIT是参考实现。在Heimdal客户端上,您可以使用
--password file
标志:
$ kinit --password-file=~/mypasswordfile test@REALM
这样可以避免将密码泄漏到进程列表中,因为它“从文件名的开头读取密码”
你也可以这样做
--password-file=STDIN
然后将其导入,例如cat password|file | kinit--password file=STDINtest@REALM
注意:这样可以避免通过ps
输出泄漏密码
在MacOS上,您也可以使用该选项。您可以使用kinit--version
检查客户端的类型。如果--version
标志无法识别,则很可能是MIT客户端;Heimdal客户端似乎也能识别标志并报告版本
注意,Ubuntu在14.04和16.04之间将默认值从Heimdal实现切换到MIT实现。另外,一般来说,这两个包。使用“ktutil”创建一个键表
传递keytab和login的命令
基尼特username@domain.com-k-t/path/to/username.keytab
参考链接黑客的方法。对我有用。谢谢。在CentOS 7上,我不得不在密码周围使用单引号
”
,而不是“
,并确保Active Directory域/Kerberos域已大写,以使其正常工作。这对OS X FWIW不起作用(这需要一个安全的密码输入。您可以将密码存储在钥匙链中并与kinit一起使用,请参阅bash中的“我更喜欢”kinit username@rogerdpack请随意增强答案。@Michael-O,他不知道。我也不知道。关于如何做到这一点的逐步MWE将非常有用。@user1717828我同意,我将在tim中添加教程。)e、 @Michael-O现在是时候了吗?;)@我来这里是因为我正在寻找一种方法来保存我的密码,以便更容易地修改。对于这一点,解决方案是kinit--keychain
,然后你只需键入一次密码。这真的总是有效吗?在我的例子中,我遇到了一个错误错误的开始时间值swarm file=mypasswordfile
好的,我已经解决了我的拼写错误(至少在这里是有效的)。我想您的kerberos服务器或本地设备可能还有其他问题,可能会问一个新问题。
--password-file=STDIN
> 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