问题标签 [git-crypt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
14290 浏览

windows - 如何在 Windows 上安装 Git-crypt?

Linux 和 MacOS 存在 git-crypt 指令,但对于 Windows,这些指令似乎被省略了。如何在 Windows 上安装 Git-crypt?

0 投票
2 回答
4758 浏览

git - 如何更改 git-crypt 密钥

我使用git-crypt分叉了一个 repo ,我需要更新 git-crypt 密钥,以便上游 git-crypt 密钥无法解密新的 repo。

git-crypt help文档和自述文件似乎没有解释如何更改 git-crypt 密钥。

我尝试了各种擦除 git-crypt 配置并重新初始化的方法。不幸的是,所有这样做的尝试似乎都破坏了各种事情,比如 git diff 显示错误,如smudge filter git-crypt failed. 在已初始化的存储库上运行git-crypt init会导致数据不可读中记录了其中一些行为。https://github.com/AGWA/git-crypt/issues/47评论中的任何建议都不能防止 git diff 致命错误。(我对 git diff 显示来自未加密二进制文件历史记录的无用输出很好,但某些git diff提交中给出致命错误以防止对未加密文件进行比较是不合适的。)

这似乎是 git-crypt 的主要要求,所以我不敢相信这不受支持,例如,如果您因为有人离开公司而需要轮换 git-crypt 密钥。

0 投票
1 回答
1337 浏览

git - Git 与 git-crypt 合并

通常,当您合并两个分支时,冲突会出现在文件中,如下所示:

但是,我试图做的合并有冲突,但我不知道为什么文件根本没有改变,因此不包含任何<<<<<< HEAD内部。

这是我尝试过的命令:

我不知道它是否会产生任何影响,但我正在git-crypt用作后端。

-- 编辑 01 -- 我很确定这是由于 git-crypt 中的一个错误。我想出了一个非常肮脏的解决方案,但这似乎同时有效:

首先,从共同祖先提交中手动复制文件:

然后,手动复制外部分支中的文件:

最后回到你的主分支并使用git merge-file类似的东西:

然后,您可以打开yourfile.txt,搜索字符串<<<<<并手动更正冲突!如果您有更快的解决方法,请告诉我!

-- 编辑 02 -- 我找到了一种更快的方法:您可以在一个命令中完成,而不是结帐和复制:

-- 编辑 03 --

经过torek的建议,我终于找到了解决问题的方法:

首先,为 git-crypt 管理的所有文件添加.gitattributes一个选项:merge=git-crypt

然后,在文件末尾添加.git/config以下内容:

最后在 repo 的根目录创建一个文件,其中my-merge-tool.sh包含:

并确保它是可执行的:

就是这样,您现在可以像往常一样合并、挑选,甚至使用您最喜欢的合并工具!

0 投票
1 回答
775 浏览

security - Git-crypt 工作流程 - 部署到多个服务器或 circleci/travisci

试图了解基于 git-crypt 的保密解决方案的完整工作流程。

该工具本身在开发机器上运行良好,即使扩展到多个开发人员似乎也能正常工作。

但是,我不清楚将其部署到云上的多个服务器时如何工作,其中一些是按需创建的:

  1. 在新服务器上无人值守创建 GPG 密钥的挑战(有人需要创建密码,或者它在源代码控制中,而且,这一切还有什么价值?)

  2. 创建 GPG 后,如何将其添加到环中?

  3. 假设我们决定跳过 #1 并在服务器之间共享一个密钥,那么密码是如何作为“git-crypt unlock”过程的一部分提供的?

我真的尝试过搜索,但找不到一个好的端到端工作流程。

0 投票
1 回答
483 浏览

gnupg - 无法登录 git-crypt,因为 .gnupg/pubring.kbx 文件搞砸了

我搞砸了.gnupg/pubring.kbx文件。我没有.gnupg文件夹的任何备份。但是,我仍然有我的 GPG 公钥和私钥。我无法解锁 git-crypt。当我在我的 mac 中列出.gnupg文件夹时,它会列出这些文件:

有什么方法可以恢复该文件以便我可以执行git-crypt unlock吗?或者没有那个文件有没有办法做git-crypt unlock ?

0 投票
0 回答
209 浏览

heroku - 如何在 heroku deploy 中启用 git-crypt?

我正在将我的部署从 AWS 更改为 heroku,我的后端应用程序是使用 Node-Hapi-MongoDb(mLab) 堆栈构建的。但是,我想隐藏我的环境变量(即:MongoDb URL、Token、JsonWebToken Secret 等...)。所以我已经在 github 和 AWS 中成功实现了 git-crypt。它工作得很好。但我不得不在 AWS 服务器中手动解密。

因此,当我尝试使用以下命令部署到 Heroku 时:

我可以看到 git-crypt 加密的文件没有被解密。

我试图按照这个自述文件 heroku-buildpack-git-crypt

但我无法理解一些事情:

  1. 您必须为您的 Heroku 应用程序创建一个 gpg 密钥:gpg --default-new-key-algo rsa4096 --gen-key

我总是尝试使用此命令创建 gpg-key,我收到以下消息:

  1. 然后,您必须将此密钥添加到您的存储库以使其成为贡献者: git crypt add-gpg-user <email of your key for your heroku app>

我的存储库已经有 git-crypt,但使用的电子邮件与我在 heroku 中使用的电子邮件不同,电子邮件是否必须相同?

  1. 之后,您必须在 Heroku 中使用私钥的内容指定 GPG_PRIVATE_KEY。

Heroku 中的 GPG_PRIVATE_KEY 是什么内容,我如何获得这些信息?

我的问题是:如何使用 heroku 配置 git-crypt? 或者

是否有一种自动方式将加密的 github 存储库部署到 heroku 并在 heroku 环境中解密并运行应用程序?

0 投票
1 回答
257 浏览

git - GitKraken 与 git-crypt 的互操作性

git-crypt在使用 git CLI 时效果很好。.gitattributes我已经为 git-crypt ( )进行了适当的设置。创建/编辑要加密的文件后,我执行:

文件已经上演,现在我执行:

但是当我使用 GitKraken 并暂存文件时,它似乎并没有复制git add .CLI。

有人成功使用过 GitKraken 和 git-crypt 吗?

0 投票
0 回答
396 浏览

github - 如何在 Heroku 中加密文件?

我想找到一种方法将加密文件存储在我的 github 存储库中,Heroku 可以即时解密(它不是 env var,而是普通的旧.csv文件)。

git-crypt在我的机器上成功使用了,但似乎我无法向 heroku 添加 gpg 密钥。

当我连接heroku-cli并尝试使用创建 gpg 密钥heroku run gpg --gen-key时,出现以下错误:

gpg:签名失败:设备的 ioctl 不合适

无论如何,我什至不确定git-crypt是正确的方法,所以请随时给我任何其他替代解决方案。

0 投票
0 回答
499 浏览

gnupg - 我应该在哪里为 GnuPG 2.0 及更高版本指定 pinentry 程序?

我将介绍 git-crypt 或 git-secret 来加密 git 存储库中描述的凭据信息。

这就需要 GnuPG(GPG) 提供一种加密方式。我已经用自制软件安装了以下程序:

  • gnupg
  • gnupg2
  • pinentry-mac

从 GnuPG 2.0 开始,无需单独安装 gpg-agent。

GnuPG 2.1 中的新功能

但是如何设置 pinentry-program 呢?我尝试在 gpg-agent.confg 中将 pinentry-mac 设置为 pinentry-program,就像我在以前的版本中所做的那样。它对我不起作用。

替换 gpg-agent.conf 的文件是什么文件,或者是否需要任何额外的过程,例如重新启动 gpg?

0 投票
1 回答
578 浏览

azure-devops - 如何以及在何处与 CI 共享 Git-Crypt 的私钥以解密加密文件?

我正在开发一个 Android 项目。我有一些受版本控制的文件 git-crypt 为我加密它们。其中一些内容对于在运行构建过程之前进行解密很重要。

在我的笔记本电脑上构建项目完全没有问题。问题出在 CI 方面。当我将代码推送到 Origin 时,管道(我正在使用 Azure)触发管道,几秒钟后,构建失败。那是因为构建系统正在寻找我在 keys.properties 文件中的信息并且它是加密的。

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

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