在Docker中添加ssh密钥

时间:2017-06-01 07:18:14

标签: git docker ssh

在我的Dockefile中我将ssh键添加到docker并从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

成功克隆了回购,并成功从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

2 个答案:

答案 0 :(得分:2)

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

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

$ whoami向您显示当前用户。

答案 1 :(得分:1)

您可以使用以下选项将主机的.ssh目录挂载到docker中,而不是将键作为args传递:

{{1}}