【发布时间】:2020-09-24 05:30:42
【问题描述】:
这个问题本质上听起来很简单,但我找不到安全简单的解决方案。
问题如下,我有一个项目,我想从私有 git 存储库中提取依赖项以构建运行时环境,然后删除 SSH 密钥和 SSH 密码。我不能跳过密码短语,因为它是由 git remote repos 强制执行的。
- 我很难推送 SSH 密码,因此 SSH 不会要求输入密码
- 我很难理解如何安全地做到这一点
我该怎么做的问题,所以该方法也将是安全的?
我在 Docker 中操作,可能可以在其上安装任何开源软件。
【问题讨论】:
-
我通常做的是删除密码短语,克隆 repo,将密码短语放回原处。我想你已经明确表示你的遥控器已经强制使用密码,所以你不能删除它并克隆?我的理解正确吗?
-
是的,这正是问题所在。它是强制的,所以我必须克服它。我也无法控制组织的政策。
-
我倾向于在 Docker 空间之外运行所有 git 操作。这避免了将密钥获取到图像中的问题,以及泄漏它的可能性;它让我可以构建任意分支或工作代码;并且它避免了 Docker 不会重复
RUN git clone行认为它是幂等的问题。 -
@DavidMaze 在我的情况下它不起作用,因为 SSH 连接是构建 Git 中的项目依赖项。这意味着我需要构建一个所有依赖项都在外部的项目,但本地机器、云和 CI/CD 管道中的本地环境可能会有所不同,所以在这种情况下我根本不会使用 Docker 的强大功能。它使 Docker 的使用受到质疑,而 Docker 不是我可以在这个项目中放弃的东西。
-
将
Dockerfile和其他工件放入存储库本身。git clone ... && docker build。您仍然会从一致的源代码树中获得一致的结果。
标签: git docker security ssh sshpass