如何解决如何将ssh密码添加到Docker并在使用后将其删除?
这个问题本质上听起来很基本,但是我找不到安全,简单的解决方案。
问题如下,我有一个项目,我想从私有git repos中提取依赖项以构建运行时环境,然后删除SSH密钥和SSH密码。我无法跳过密码,因为它是git remote repos强制执行的。
- 我努力推广SSH密码,因此SSH不会要求输入密码。
- 我很难理解如何安全地进行操作
我该怎么做的问题,这样的方法也将是安全的?
我在Docker中操作,并且可能会在其上安装任何开源软件。
解决方法
启用buildkit
:
Docker构建具有--ssh选项,以允许Docker Engine转发SSH代理连接。
您可以将ssh-add
的私钥访问ssh-agent
。
在ssh-add
man
页中:
如果任何文件需要密码,
ssh-add
会要求用户提供密码。
在ssh-agent
man
页中:
该想法是该代理在用户的本地PC,便携式计算机或终端中运行。身份验证数据不需要存储在任何其他计算机上,并且 身份验证密码永远不会通过网络。但是,与代理的连接是通过SSH远程登录转发的,用户可以 从而使用网络中任何地方的身份所赋予的特权 一种安全的方式。
ssh-agent
将永远不会通过其请求通道发送私钥。 ...
文档中的示例Dockerfile
:
# syntax=docker/dockerfile:experimental
FROM alpine
# Install ssh client and git
RUN apk add --no-cache openssh-client git
# Download public key for github.com
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
# Clone private repository
RUN --mount=type=ssh git clone git@github.com:myorg/myproject.git myproject
构建图像:docker build --ssh default
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。