【发布时间】:2019-10-09 23:18:49
【问题描述】:
我正在尝试在构建 docker 映像时克隆一个私有 github 存储库。我安装了 docker 18.09.2,根据Build secrets and SSH forwarding in Docker 18.09 和Using SSH to access private data in builds,我应该能够通过像这样设置我的 Dockerfile 来使用转发的 ssh 密钥:
# syntax=docker/dockerfile:experimental
FROM node:10.15.3
# Update and install any dependencies.
RUN apt-get update
RUN apt-get -y install openssh-client git
# Clone the private repository
RUN --mount=type=ssh git clone git@github.com:<USER>/<PRIVATE_REPO>.git
我已经使用ssh-add添加了我的ssh密钥,并且在运行ssh-add -L时成功列出。
为了构建容器,我使用以下命令:
docker build --ssh default .
我在尝试构建映像时仍然收到以下错误消息:
主机密钥验证失败。
我使用的 docker 客户端正在运行 macOS Mojave。
【问题讨论】:
-
虽然我没有回答您的问题,但请注意 "host key" 与您的 "ssh key" 不同.请参阅我关于 SSH Key Pairs 的文章以了解其中的区别。它可能会让你走上正轨。
-
@MartinPrikryl - 啊,这可能是问题所在。实际上,我可能必须在
~/.ssh/known_hosts中添加一个条目才能使其正常工作? -
是的,这可能有效。它肯定适用于普通的
ssh。我不了解 Docker。 -
天哪,我太笨了。实际上,我有一个部分将 github.com 添加到
known_hosts文件中,它不起作用的原因是因为我拼错了文件名,例如RUN mkdir -p -m 0600 /root/.ssh && ssh-keyscan github.com >> /root/.ssh/know_hosts。谢谢你帮助我=)