将ssh私钥添加到docker

时间:2018-10-31 15:05:11

标签: docker ubuntu

我正在尝试将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$ 

有什么建议吗?我的钥匙没有密码

1 个答案:

答案 0 :(得分:0)

如果您的密钥没有密码,并且ssh-add要求您输入密码,则意味着ssh-add无法理解您的密钥文件。罪魁祸首是echo $key > panaxea-key。您会看到该文件现在是一行文本,所有换行符都消失了。

改为使用echo "$key" > panaxea-key

这应该可以使它工作,但是关于在Docker映像中嵌入私钥的警告仍然存在。如何解决这个问题取决于您要完成的工作,但我觉得这完全是一个不同的问题。