基于这个问题:将文件发送到云端之前对其进行加密。
考虑 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/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 man
ual
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
(和密钥,其名称暗示这不是一个好主意),所以我决定直接将我的存储库复制到另一台机器上。遗憾的是,这种方式行不通,因此我们可能需要添加其他用户。