macos - SSH 密钥转发
问题描述
我正在尝试在构建 docker 映像时克隆一个私有 github 存储库。我已经安装了 docker 18.09.2 并且根据Build secrets and SSH forwarding in Docker 18.09
and 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。
解决方案
正如在上面的评论中指出的那样,这与 ssh 不host key
一样,ssh key
而且这不起作用的原因与我转发的 ssh 密钥无关,而是我需要将主机添加到~/.ssh/known_hosts
:
RUN mkdir -p -m 0600 /root/.ssh && ssh-keyscan github.com >> /root/.ssh/known_hosts
推荐阅读
- java - Android OpenCV JavaCamera2View 初始化失败
- spring - 我如何确定在 Spring Cloud Stream API 中更新了 Keystore
- python - findall 只返回最后一个属性
- scala - 如何在重定向中传递表单 url 编码的参数
- angular - 在 Angular 6 中的 innerhtml 内标记单击事件
- sql-server - SQL Server:在两个子查询之间执行 OUTER APPLY
- python - Pandas - 如何通过每个图表重复 axvline
- ethereum - 以solidity 0.5.0返回字符串。函数中返回参数的数据位置必须是“内存”
- android - 在 Kotlin 中初始化的变量
- vue.js - 用chartjs动态渲染图表