docker - 尝试分配环境变量以包含 docker images public ssh key
问题描述
我需要容器自己的公钥位于容器映像中的环境变量中,以便在启动映像时变量 AUTHORIZED_KEYS 已经填充了它。
我尝试将变量 AUTHORIZED_KEYS 分配给 Dockerfile 中的公钥,但是当我启动容器并查看正在运行的容器中的所有环境变量时查看它时,它是空的。我确实看到我的测试变量 ERNIE 被正确填充。
这是我到目前为止不起作用的 Dockerfile -
FROM alpine:latest
ARG SSH_PUBLIC_KEY
# ssh-keygen -A generates all necessary host keys (rsa, dsa, ecdsa, ed25519) at default location.
RUN apk update \
&& apk add openssh \
&& apk add openssh-server-pam \
&& mkdir /root/.ssh \
&& chmod 0700 /root/.ssh \
&& ssh-keygen -A \
&& sed -i s/^#PasswordAuthentication\ yes/PasswordAuthentication\ no/ /etc/ssh/sshd_config \
&& sed -i s/^#UsePAM\ no/UsePAM\ yes/ /etc/ssh/sshd_config \
&& sed -i s/root:!/"root:*"/g /etc/shadow \
&& ssh-keygen -f ~/.ssh/id_rsa -N "" -q \
&& SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
#&& AUTHORIZED_KEYS="$(cat ~/.ssh/id_rsa.pub)"
RUN cat /etc/ssh/sshd_config
# This image expects AUTHORIZED_KEYS environment variable to contain your ssh public key.
EXPOSE 22
ENV ERNIE="hellooo there ernie"
ENV AUTHORIZED_KEYS=$SSH_PUBLIC_KEY
解决方案
推荐阅读
- bash - If-Statement 疯了(还是我?)
- reactjs - Webpack + react-native-web:错误:无法解析“BoundingDimensions”
- c - char 和 char* 在内存中的对齐方式
- android - 如何将对象随机放置在 Sceneform 平面上?
- python - Bottle 框架资源利用率
- excel - 如何仅将包含字母“A”的某些列/数据字段引入数据透视表?
- git - 如何将子文件夹的副本复制到 Git 中的单独存储库中?
- ionic-framework - httpClient 的问题我收到此错误
- python - 除非从根目录运行,否则 Python 库不会加载
- kubernetes - 如何为 Confluent Rest-Proxy 配置负载均衡器粘性