构建映像时,我正在尝试创建密钥表文件。 这是我在我们的Red Hat盒子中运行的东西:
ktutil
ktutil: add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts
Password for $user_id@DOMAIN.COM:
ktutil: wkt $user_id.keytab
ktutil: quit
并生成密钥表。
我正在尝试在Docker上执行此操作,并且正在运行:
RUN ktutil && echo "add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts" && echo "$user_pass" && echo "wkt $user_id.keytab" && echo "quit"
它正在这样做:
Step 22/27 : RUN ktutil && echo "add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts" && echo "$user_pass" && echo "wkt $user_id.keytab" && echo "quit"
---> Running in b186efb561fc
ktutil: add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts
$user_pass
wkt $user_id.keytab
quit
因此它运行第一个命令,然后退出ktutil?我应该如何格式化RUN命令。有没有把它留在ktutil中的窍门?
答案 0 :(得分:1)
这个问题并不是真正针对Docker的。它是关于如何在非交互模式下运行ktutil
的,我发现了涉及以下内容的现有问题:Script Kerberos Ktutil to make keytabs。
我们可以将答案中的想法应用到Docker中创建keytab文件中:
FROM centos
# These variables just for demonstration here,
# ideally should be passed as
ARG user_id
ARG user_pass
# Should check here whether the above arguments
# have been actually passed to the build
# Install dependencies
# Add new entry to keytab file and list all entries afterwards
RUN yum install -y krb5-workstation.x86_64 \
&& echo -e "add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts\n$user_pass\nwkt $user_id.keytab" | ktutil \
&& echo -e "read_kt $user_id.keytab\nlist" | ktutil
wkt $user_id.keytab" | ktutil \
&& echo -e ""
当我使用以下命令为以上Dockerfile
运行构建时:
docker build -t ktutil --build-arg user_id=test --build-arg user_pass=test_pass .
我可以看到以下结果:
ktutil: add_entry -password -p test@DOMAIN.COM -k 1 -e aes256-cts
Password for test@DOMAIN.COM:
ktutil: wkt test.keytab
ktutil: ktutil: read_kt test.keytab
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 1 test@DOMAIN.COM
答案 1 :(得分:0)
尝试:
ktutil: add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts
Password for $user_id@DOMAIN.COM:
ktutil: add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts
Password for $user_id@DOMAIN.COM:
ktutil:
答案 2 :(得分:0)
我们设法像这样修复它:
RUN printf 'add_entry -password -p $user_id@DOMAIN.COM -k 1 -e aes256-cts\n$user_pass\nwkt $user_id.keytab' | ktutil