如何在docker中初始化keytab?

时间:2017-09-01 09:35:55

标签: docker kerberos keytab

我有一个krb5.conf文件。我创建了一个keytab并将其检查为expalined here

在docker文件中,我将所有内容添加到容器中

FROM java:8

ADD krb5.conf /etc/krb5.conf
ADD evkuzmin.keytab /etc/evkuzmin.keytab
ADD scripts/ /opt/scripts/

ADD report.jar report.jar
RUN sh -c 'touch report.jar'
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://audpro_mongo/report","-Djava.security.egd=file:/dev/./urandom","-jar","/report.jar","/opt/scripts/init-keytab.sh"]

并尝试在init-keytab.sh中初始化它

#!/bin/bash
kinit EvKuzmin@REALM -k -t /etc/evkuzmin.keytab

但每次我尝试访问安全群集时,都会收到Unauthorized错误。当我用

检查我的密钥表时
klist -k evkuzmin.keytab

我找不到evkuzmin.keytab。

为什么?

我使用Oracle虚拟盒和docker quickstrat终端测试一切localy。 Keytab是在服务器上生成的,并复制到本地计算机上的项目中。

修改

我使用

检查了图像中的文件
docker run -it --entrypoint sh <image-name>
他们在场。

1 个答案:

答案 0 :(得分:4)

无需初始化它。我设法运行它。你可以找到我是如何做到的here

修改

另外,我找到了这个片段

CMD kinit -kt $HOME/$USER.keytab $USER && ${PROJECT_DIR}/oozie/${PROJECT_NAME}/start.sh

应该从dockerfile初始化keytab。没有测试它,所以不知道它如何与弹簧一起工作。这将启动一个带有kerberos凭证的oozie协调员。