如何在不丢失 git diff 工具的情况下加密 bitbucket 中的数据?

如何在不丢失 git diff 工具的情况下加密 bitbucket 中的数据?

基于这个问题:将文件发送到云端之前对其进行加密

考虑 openssl:例如,当使用 openssl 时,我们可以写入文件fooenc.sh

#!/bin/sh 
openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T

foodec.sh

#!/bin/sh
openssl enc -bf -nopad -d -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T

.git/config您应该在存储库的文件中指定这些过滤器;

[filter "crypt"]
    clean = fooenc.sh
    smudge = foodec.sh

我尝试了这个方法并且我发现:

error: cannot run fooenc.sh: No such file or directory
error: cannot fork to run external filter ourenc.sh
error: external filter fooenc.sh failed

我应该把这个 *.sh 放在哪里?

即使我尝试

 [filter "crypt"]
        clean = openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
        smudge = openssl enc -bf -nopad -d -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T

甚至我以为它发生在我身上:

bad decrypt
3074115260:error:0607F08A:digital envelope routines:EVP_EncryptFinal_ex:data not multiple of block length:evp_enc.c:414:
error: external filter openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T failed 1
error: external filter openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T failed

采取了其他方法,例如git 远程加密或者另一个使用基努

正在.git/info/attributes使用:

myPrivateInfosFile filter=gpg diff=gpg

在你的 repo.git/config文件中:

[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt

最后,使用git 远程加密我想到的是:

gcrypt: Remote ID is :id:k/a9sdsd332e3442wdaJ
Counting objects: 102, done.
Compressing objects: 100% (71/71), done.
Total 102 (delta 8), reused 0 (delta 0)
gcrypt: Encrypting to: --throw-keyids --default-recipient-self
gcrypt: Requesting manifest signature
gpg: no default secret key: secret key not available
gpg: [stdin]: sign+encrypt failed: secret key not available
error: failed to push some refs to 'gcrypt::rsync:https://[email protected]/ourstuffteam/our.git'

这些方法都不是成功的方法。

** 根据此方法或其他新方法。我如何才能更正确地将数据加密到 git 中并存到 bitbucket 中?**

答案1

我利用你的尝试进行了一些尝试,并找到了解决你git-remote-gcrypt错误的办法。查看我的问题设置加密的 git 存储库

你只需要运行

gpg --gen-key

这将启动一个对话框来创建一个gpg密钥,该密钥稍后可用于推送到 bitbucket。比较gpg manual

How to manage your keys

       This section explains the main commands for key management

       --gen-key
              Generate a new key pair using the current  default  parameters.   This  is  the
              standard command to create a new key.

              There  is also a feature which allows you to create keys in batch mode. See the
              the manual section ``Unattended key generation'' on how to use this.

不过,我还不知道进一步的用途。

编辑

我刚刚尝试将该存储库克隆到另一台机器上。显然,这需要密钥gpg(和密钥,其名称暗示这不是一个好主意),所以我决定直接将我的存储库复制到另一台机器上。遗憾的是,这种方式行不通,因此我们可能需要添加其他用户。

相关内容