在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
repo克隆成功,并从testBranch
成功拉,当我运行这个docker使用docker run
命令,并尝试任何git命令它说
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights
但ssh密钥存在于/root/.ssh
目录中
您的密钥是针对root用户( /root/.ssh/
)添加的。 我想当你运行docker run
你切换到另一个用户(也许, docker )。
如果您将id_rsa.pub
添加到正确的用户(运行docker run
命令后的用户),那么它应该工作。
$ whoami
向您显示当前用户。
您可以使用以下选项将主机的.ssh目录加载到docker中,而不是将密钥传递给args:
docker run -v /home/<host user>/.ssh:/home/<docker user>/.ssh <image>