问题标签 [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.
windows - 如何在 Windows 上安装 Git-crypt?
Linux 和 MacOS 存在 git-crypt 指令,但对于 Windows,这些指令似乎被省略了。如何在 Windows 上安装 Git-crypt?
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 密钥。
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
包含:
并确保它是可执行的:
就是这样,您现在可以像往常一样合并、挑选,甚至使用您最喜欢的合并工具!
security - Git-crypt 工作流程 - 部署到多个服务器或 circleci/travisci
试图了解基于 git-crypt 的保密解决方案的完整工作流程。
该工具本身在开发机器上运行良好,即使扩展到多个开发人员似乎也能正常工作。
但是,我不清楚将其部署到云上的多个服务器时如何工作,其中一些是按需创建的:
在新服务器上无人值守创建 GPG 密钥的挑战(有人需要创建密码,或者它在源代码控制中,而且,这一切还有什么价值?)
创建 GPG 后,如何将其添加到环中?
假设我们决定跳过 #1 并在服务器之间共享一个密钥,那么密码是如何作为“git-crypt unlock”过程的一部分提供的?
我真的尝试过搜索,但找不到一个好的端到端工作流程。
gnupg - 无法登录 git-crypt,因为 .gnupg/pubring.kbx 文件搞砸了
我搞砸了.gnupg/pubring.kbx文件。我没有.gnupg文件夹的任何备份。但是,我仍然有我的 GPG 公钥和私钥。我无法解锁 git-crypt。当我在我的 mac 中列出.gnupg文件夹时,它会列出这些文件:
有什么方法可以恢复该文件以便我可以执行git-crypt unlock吗?或者没有那个文件有没有办法做git-crypt unlock ?
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
但我无法理解一些事情:
- 您必须为您的 Heroku 应用程序创建一个 gpg 密钥:gpg --default-new-key-algo rsa4096 --gen-key
我总是尝试使用此命令创建 gpg-key,我收到以下消息:
- 然后,您必须将此密钥添加到您的存储库以使其成为贡献者:
git crypt add-gpg-user <email of your key for your heroku app>
我的存储库已经有 git-crypt,但使用的电子邮件与我在 heroku 中使用的电子邮件不同,电子邮件是否必须相同?
- 之后,您必须在 Heroku 中使用私钥的内容指定 GPG_PRIVATE_KEY。
Heroku 中的 GPG_PRIVATE_KEY 是什么内容,我如何获得这些信息?
我的问题是:如何使用 heroku 配置 git-crypt? 或者
是否有一种自动方式将加密的 github 存储库部署到 heroku 并在 heroku 环境中解密并运行应用程序?
git - GitKraken 与 git-crypt 的互操作性
git-crypt在使用 git CLI 时效果很好。.gitattributes
我已经为 git-crypt ( )进行了适当的设置。创建/编辑要加密的文件后,我执行:
文件已经上演,现在我执行:
但是当我使用 GitKraken 并暂存文件时,它似乎并没有复制git add .
CLI。
有人成功使用过 GitKraken 和 git-crypt 吗?
github - 如何在 Heroku 中加密文件?
我想找到一种方法将加密文件存储在我的 github 存储库中,Heroku 可以即时解密(它不是 env var,而是普通的旧.csv
文件)。
我git-crypt
在我的机器上成功使用了,但似乎我无法向 heroku 添加 gpg 密钥。
当我连接heroku-cli
并尝试使用创建 gpg 密钥heroku run gpg --gen-key
时,出现以下错误:
gpg:签名失败:设备的 ioctl 不合适
无论如何,我什至不确定git-crypt
是正确的方法,所以请随时给我任何其他替代解决方案。
gnupg - 我应该在哪里为 GnuPG 2.0 及更高版本指定 pinentry 程序?
我将介绍 git-crypt 或 git-secret 来加密 git 存储库中描述的凭据信息。
这就需要 GnuPG(GPG) 提供一种加密方式。我已经用自制软件安装了以下程序:
- gnupg
- gnupg2
- pinentry-mac
从 GnuPG 2.0 开始,无需单独安装 gpg-agent。
但是如何设置 pinentry-program 呢?我尝试在 gpg-agent.confg 中将 pinentry-mac 设置为 pinentry-program,就像我在以前的版本中所做的那样。它对我不起作用。
替换 gpg-agent.conf 的文件是什么文件,或者是否需要任何额外的过程,例如重新启动 gpg?
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 文件中引用它。