如何使用我的私钥从Dockerfile访问GIT存储库

我正在尝试在可访问我的私人git存储库的Docker容器中添加一个私钥。testing_git文件位于包含Dockerfile的文件夹中。我正在尝试制作一个可以动态提取git代码的容器。

这是我的Dockerfile:

FROM ubuntu:14.04.1

WORKDIR ~/.ssh

RUN apt-get -y install ssh

WORKDIR /var/www/html

Run apt-get -y install git

RUN mkdir ~/.ssh

ADD id_rsa /home/id_rsa

RUN cat /home/id_rsa && mv /home/id_rsa ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa && ssh-add -l && ssh-add -L && echo "Host github.com\n\tIdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config && git clone git@github.com:amitbadheka/Learning-Rails

输出:

Step 9 : RUN mkdir ~/.ssh

---> Using cache

---> 38f2824f41d6

Step 10 : ADD id_rsa /home/id_rsa

---> Using cache

---> afae372c6a40

Step 11 : RUN cat /home/id_rsa && mv /home/id_rsa ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa && ssh-add -l && ssh-add -L && echo "Host github.com\n\tIdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config && git clone git@github.com:amitbadheka/Learning-Rails.git

---> Running in edd6778a0ae6

-----BEGIN RSA PRIVATE KEY-----

MY PRIVATE KEY

-----END RSA PRIVATE KEY-----

Agent pid 12

Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

2048 69:41:88:d2:5f:22:fa:63:92:2b:f9:b8:a4:1e:3c:24 /root/.ssh/id_rsa (RSA)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrfPuszAriGJxGd16TVeWBvCt8lj88OlJ0fz5LYd2voWDUDnEmPDpvQUDZKQI+MlFfhPS+KN239XsL4X1+vdyj8xXzcBeUB+DUYW2bxZd0kLsmOPeJ0Htoat12fdjzIC/m+H+j6SkAwL+WrV/vH+tbjNZVrl+zcMvBsZipyrKHmJiwko/cqACRYGRXAAUahnVTfhQGXArqn3ioxNN5r6ZDPdv+xGZY4V9fTbHbDooEHaOz/EFu6xwoBFC2SBID3aKEQgS6C07/iRt1fJ8c8TPPvJt6vLJQ/h5LLsN2WRxDG+V5fCGqWKDdJWoyM+fOuCNOH1XTDka8d+2ZN2v+U1KX /root/.ssh/id_rsa

Cloning into 'Learning-Rails'...

**Host key verification failed.**

**fatal: Could not read from remote repository.**

Please make sure you have the correct access rights and the repository exists.

2014/12/15 18:20:47 The command [/bin/sh -c cat /home/id_rsa && mv /home/id_rsa ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa && ssh-add -l && ssh-add -L && echo "Host github.com\n\tIdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config && git clone git@github.com:amitbadheka/Learning-Rails.git] returned a non-zero code: 128

因此,当我使用相同的密钥时,可以访问我的存储库。

谁能告诉我我想念的东西吗?

回答:

错误消息Host key verification

failed.不是在抱怨您的私钥,而是在抱怨github.com的主机密钥。您可以执行以下操作添加github主机密钥:

ssh-keyscan -t rsa github.com > ~/.ssh/known_hosts

也许您有原因,但是通常将git

repo复制到映像中并不是在容器中运行代码的首选方法。取而代之的是,将Dockerfile放在仓库的根目录,并在Dockerfile中使用ADD命令将源代码包含在容器中。

如您现在所写,您的私钥是Docker映像的一部分。与您共享图像的任何人也将拥有您的私钥。

以上是 如何使用我的私钥从Dockerfile访问GIT存储库 的全部内容, 来源链接: utcz.com/qa/414704.html

回到顶部