为什么我不能在docker中使用正确的ssh密钥克隆私有git存储库?

时间:2017-11-10 11:10:59

标签: git docker github ssh

我正在尝试使用ssh身份验证从docker容器内部git clone到私有存储库。我按照提出的解决方案here

为此,我创建了一个本地密钥

ssh-keygen -q -t rsa -N '' -f repo-key

并将公钥添加到github ssh键。然后在Dockerfile中我添加了:

RUN chmod 600 repo-key && \  
    echo "IdentityFile /selenium/repo-key" >> /etc/ssh/ssh_config && \  
    echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config 

但是当我尝试git clone存储库时,我收到了错误消息

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.

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

我可以检查其他任何其他功能吗?

再次解释为什么:我希望能够使用FIXED私钥创建映像,该私钥始终与github上的公钥一起使用,因此我可以使用SAME映像,但能够将实际/当前存储库下载到正在运行的容器。该映像配备了正确的密钥,因此它可以访问github存储库,并且能够在从同一映像启动包含时下载当前存储库... 该图像用于selenium测试,稍后将由脚本(或jenkins)自动执行,然后我无法“登录”到容器以创建ssk密钥对并将公钥上传到github。整个过程就是自动化测试。因此,必须将认证建立在图像中。

HOPEFULLY现在很清楚了。

2 个答案:

答案 0 :(得分:0)

因为您已经在docker容器中创建了一个ssh密钥。你需要做什么:

  • 登录docker容器以复制生成的ssh公钥。
  • 然后,您需要将公钥添加到您的github帐户。

之后,您可以轻松克隆私人git仓库。

答案 1 :(得分:0)

克隆GitHub仓库时,您仍需要指定正确的用户来建立该ssh连接:git

所以:

 git clone git@github.com:User/repo.git
          ^^^^^