首页 > 解决方案 > SSH 密钥转发

问题描述

我正在尝试在构建 docker 映像时克隆一个私有 github 存储库。我已经安装了 docker 18.09.2 并且根据Build secrets and SSH forwarding in Docker 18.09and 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 密钥,ssh-add并且它在运行时成功列出ssh-add -L

要构建容器,我然后使用以下命令:

docker build --ssh default .

尝试构建映像时,我仍然收到以下错误消息:

主机密钥验证失败。

我正在使用的 docker 客户端正在运行 macOS Mojave。

标签: macosdockerssh-keys

解决方案


正如在上面的评论中指出的那样,这与 ssh 不host key一样,ssh key而且这不起作用的原因与我转发的 ssh 密钥无关,而是我需要将主机添加到~/.ssh/known_hosts

RUN mkdir -p -m 0600 /root/.ssh && ssh-keyscan github.com >> /root/.ssh/known_hosts 

推荐阅读