在Docker中添加ssh密钥

Usa*_*ama 6 git ssh docker

在我的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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

Saj*_*han 2

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

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

$ whoami显示当前用户。