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
我正在尝试在 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