微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将ssh密码添加到Docker并在使用后将其删除?

如何解决如何将ssh密码添加到Docker并在使用后将其删除?

这个问题本质上听起来很基本,但是我找不到安全,简单的解决方案。

问题如下,我有一个项目,我想从私有git repos中提取依赖项以构建运行时环境,然后删除SSH密钥和SSH密码。我无法跳过密码,因为它是git remote repos强制执行的。

  1. 我努力推广SSH密码,因此SSH不会要求输入密码。
  2. 我很难理解如何安全地进行操作

我该怎么做的问题,这样的方法也将是安全的?

我在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 举报,一经查实,本站将立刻删除。