【问题标题】:add ssh keys in Docker在 Docker 中添加 ssh 密钥
【发布时间】:2017-11-02 05:09:40
【问题描述】:

在我的 Dockefile 中,我正在向 docker 添加 ssh 密钥并从 bitbucket 克隆一个项目。 我可以轻松地在 Docker 文件中拉出另一个分支。

ARG key
ARG pub_key
RUN mkdir /root/.ssh/
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
ADD $key /root/.ssh/
ADD $pub_key /root/.ssh/
RUN git clone git@bitbucket.org:******************/sql.git
WORKDIR "/sql"
RUN git pull origin testBranch

repo 被成功克隆,并且从 testBranch 成功拉取 当我使用docker run 命令运行这个 docker 并尝试它说的任何 git 命令时

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

但 ssh 密钥存在于目录/root/.ssh

【问题讨论】:

    标签: git docker ssh


    【解决方案1】:

    您的密钥是针对 root 用户 (/root/.ssh/) 添加的。我猜当您运行 docker run 时,您正在切换到另一个用户(也许是 docker)。

    如果您将id_rsa.pub 添加到正确的用户(运行docker run 命令后的用户),那么它应该可以工作。

    $ whoami 显示当前用户。

    【讨论】:

      【解决方案2】:

      除了将密钥作为参数传递之外,您还可以使用以下选项将主机的 .ssh 目录挂载到 docker 中:

      docker run -v /home/<host user>/.ssh:/home/<docker user>/.ssh <image>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-21
        • 2018-12-15
        • 1970-01-01
        • 2021-06-23
        • 2021-02-23
        • 2018-02-25
        • 2018-03-15
        相关资源
        最近更新 更多