git - 在 Docker 中添加 ssh key

标签 git docker ssh

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

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 成功 pull 当我使用 docker run 命令运行这个 docker 并尝试它说的任何 git 命令时

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

Please make sure you have the correct access rights

但 ssh key 存在于目录 /root/.ssh

最佳答案

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

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

$ whoami 显示当前用户。

关于git - 在 Docker 中添加 ssh key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44300975/

相关文章:

linux - sshpass:找不到命令错误

git rebase 丢失历史,那为什么要 rebase?

git - Bamboo:在多个项目中重用相同的 yml 规范

python - 在 docker 容器内运行的 flask.py 文件的服务器连接困难

python - 使用 headless Chrome运行Selenium的AWS Lambda容器在本地工作,但不在AWS Lambda中工作

docker - initctl 太旧 Upstart 检查

linux - 当您从 root 以外的任何用户进行 SSH 时,Paramiko exec_command 会挂起

shell - 具有单一身份验证的两个 scp 和 ssh 进程

python - GitPython:如何使用 '--no-ff' pull 远程存储库?

git - 如何在git中使用glob匹配选择多种文件类型