Docker --ssh 默认权限被拒绝(公钥)

Docker --ssh default Permission denied (publickey)

我正在尝试在 MacOS 上使用 --ssh default 构建一个 docker 图像,但它不起作用。 Linux.

上的相同构建工作
//Dockerfile

#syntax=docker/dockerfile:experimental
FROM node:16

WORKDIR /app

RUN chown -R node.node /app

RUN mkdir ~/.ssh/ && ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

RUN --mount=type=ssh git clone git+ssh://git@github.com/account_name/repo.git

CMD tail -f /dev/null

当我运行

docker build --ssh default -t my_image .

我收到错误:

git@github.com: Permission denied (publickey)
fatal: Could not read from remote repository

我在 ~/.ssh/id_rsa 本地机器上有我的 ssh 密钥,它在 docker.

之外工作

如果我尝试 运行 在 Dockerfile 中:

RUN --mount=type=ssh cat ~/.ssh/id_rsa

我收到错误:

cat: /root/.ssh/id_rsa No such file or directory

Docker 没有从 ~/.ssh/ 复制文件。

使用默认配置时 --ssh default 您需要将密钥添加到本地 SSH 代理。

您可以在本地检查 ssh-add -L 以查看 public 键是否对代理可见。

如果不是,请尝试 运行 ssh-add -K

参考文献:

https://medium.com/@tonistiigi/build-secrets-and-ssh-forwarding-in-docker-18-09-ae8161d066

https://apple.stackexchange.com/questions/254468/macos-sierra-doesn-t-seem-to-remember-ssh-keys-between-reboots