【问题标题】:SSH Key ForwardingSSH 密钥转发
【发布时间】:2019-10-09 23:18:49
【问题描述】:

我正在尝试在构建 docker 映像时克隆一个私有 github 存储库。我安装了 docker 18.09.2,根据Build secrets and SSH forwarding in Docker 18.09Using 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 &amp;&amp; ssh-keyscan github.com &gt;&gt; /root/.ssh/know_hosts。谢谢你帮助我=)

标签: macos docker ssh-keys


【解决方案1】:

正如上面 cmets 中指出的,host keyssh key 不同,这不起作用的原因与我转发的 ssh 密钥无关,而是我需要将主机添加到 @ 987654323@:

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

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 2012-02-02
    • 2016-07-21
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多