【发布时间】:2018-11-02 17:48:30
【问题描述】:
我正在尝试将我的 ssh 私钥添加到 docker,我的 Dockerfile 如下:
ARG key
RUN echo $key > panaxea-key
RUN chmod 600 panaxea-key
RUN eval $(ssh-agent -s) && ssh-add panaxea-key
控制台输出:
Step 10/14 : RUN echo $key > panaxea-key
---> Using cache
---> 8ee023dba45e
Step 11/14 : RUN chmod 600 panaxea-key
---> Using cache
---> b7c42a9c5268
Step 12/14 : RUN eval $(ssh-agent -s) && ssh-add panaxea-key
---> Running in 9895e087cea5
Agent pid 9
Enter passphrase for panaxea-key: The command '/bin/sh -c eval $(ssh-agent -s) && ssh-add panaxea-key' returned a non-zero code: 1
dario@dario-X750JB:~/Panaxea_Docker$
有什么建议吗?我的密钥没有密码
【问题讨论】:
-
这可能与在非交互模式下进行的 ssh-add 操作有关。当然,您提供的原始文本没有密钥,但是当它被创建时,它可能期望有一个。我知道当你执行 ssh-keygen -t rsa 时,它通常会提示你输入密码。为什么不尝试在 docker 之外创建密钥并使用 COPY 操作将其放入映像中呢?会是一个更好的测试。
-
“不要这样做!”一旦构建完成,从镜像中取出密钥是非常容易的,此时您基本上必须考虑它已被破坏并撤销对它有权访问的任何内容的访问权限。
-
@DavidMaze 你能推荐一个替代方案吗?
-
你认为你为什么想要它?答案通常会变成“将 Dockerfile 检入 git 存储库,不要尝试在 Dockerfile 中克隆存储库”之类的更高级的事情。
-
@DavidMaze 因为我必须将私有 git 存储库克隆到我的 docker 环境中? ://