Dmy*_*kyi 5 git security ssh docker sshpass
这个问题本质上听起来很简单,但我找不到安全且简单的解决方案。
问题如下,我有一个项目,我想从私有 git 存储库中提取依赖项来构建运行时环境,然后删除 SSH 密钥和 SSH 密码。我无法跳过密码,因为它是由 git 远程存储库强制执行的。
问题是我怎样才能做到这一点,这样该方法也将是安全的?
我正在 Docker 中运行,并且可能可以在其上安装任何开源软件。
启用后buildkit
:
docker 版本有一个 --ssh 选项,允许 Docker 引擎转发 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
Run Code Online (Sandbox Code Playgroud)
构建图像:docker build --ssh default
归档时间: |
|
查看次数: |
4980 次 |
最近记录: |