首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何和在何处与CI共享Git的私钥以解密加密文件?

如何和在何处与CI共享Git的私钥以解密加密文件?
EN

Stack Overflow用户
提问于 2020-01-31 18:17:55
回答 1查看 663关注 0票数 0

我正在做一个Android项目。我有几个文件在版本控制下为我加密。其中一些内容在运行构建过程之前被解密是很重要的。

我对在我的笔记本电脑上建立这个项目一点问题都没有。问题就在CI方面。当我将代码推入原产地时,管道(我正在使用Azure)触发一个管道,几秒钟后,构建失败。这是因为构建系统正在查找我在keys.properties文件中拥有的信息,并且它是加密的。

根据我的理解,git-crypt使用公钥/私钥来加密/解密文件。公钥已处于版本控制root/.git-crypt/keys/default/0/7F64F6C566153F29E4D9D44070C2A1QW029CE338.gpg.下。所以,我想我需要把私钥移到某个地方。我说的对吗?如果我是对的,那么我的问题是把它放在哪里?它仍然在计算机的根下(CI上的macOS图像/VM),还是我可以把它放在项目的根下?

注意: Azure允许我上传其库下的安全文件,然后我可以从azure-piplines.yaml文件中引用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-03 07:16:34

把它放在哪里?

根据我对git-crypt和azure devops的理解,与将私钥存储在PC的根中相比,我建议您将其放在项目的根下。

因为如果您将它存储在PC的根目录中,那么当您使用私有代理运行管道时,它不会有任何问题。但是,问题是如果有人使用托管代理,但是私钥在本地。如您所知,宿主代理位于云端,并且非常动态地加载。因此,很难从本地计算机获得私钥。

总之,将它保存在存储库中可以消除将其存储在其他地方并在开发人员之间使用它的麻烦。

然而,以上只是在PC的根存储和项目根的存储之间的建议选择。

尽管如此,如果将私钥放入项目的根中,将非常方便。

但是在个人建议和信息安全方面,我坚决支持最后提到的方法:将私钥存储在库中,并在构建/发布过程中引用它。Azure DevOps库以一种安全的方式存储秘密,并在需要时使用它们,而不让任何人看到它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60009272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档