Comment chiffrer les données dans bitbucket sans perdre les outils de git diff?

Sur la base de cette question: chiffrer les fichiers avant de les envoyer au cloud .

En considérant openssl: Par exemple, lors de l'utilisation d'openssl, nous pouvons écrire les fichiers fooenc.sh :

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

Et foodec.sh :

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

Dans le fichier .git/config dans votre référentiel, vous devez spécifier ces filtres;

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

J'ai essayé cette approche et cela m'a eu lieu:

 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 

Où est-ce que je devrais mettre ce * .sh?

Même si je tente de mettre

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

Même pensé que cela m'arrivait:

 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 

D'autres approches ont été mis en place comme git-remote-encrypt ou autre en utilisant GnuPG :

Dans l'utilisation .git/info/attributes :

 myPrivateInfosFile filter=gpg diff=gpg 

Dans votre fichier .git/config repos:

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

Enfin, en utilisant l'approche git-remote-encrypt , il m'a survécu:

 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' 

Rien de tout cela n'a été une approche réussie.

** Selon cette ou d'autres nouvelles approches. Comment puis-je chiffrer les données dans git plus correctement dans bitbucket? **

J'ai utilisé votre tentative de tentative d'erreur et j'ai trouvé une solution pour votre erreur git-remote-gcrypt . Voir ma question Configuration d'un dépôt git crypté .

Vous devez simplement exécuter

 gpg --gen-key 

Qui commence un dialogue pour créer une clé gpg qui peut ensuite être utilisée pour pousser vers bitbucket. Comparez le 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. 

Cependant, je ne connais pas encore d'autres utilisations.

modifier

Je tentais simplement de cloner ce dépôt sur une autre machine. Évidemment, on a besoin de la clé gpg (et de la clé secrète, dont le nom implique que c'est une mauvaise idée) pour cela, j'ai donc décidé de simplement copier le mien sur l'autre machine. Malheureusement, cela ne fonctionne pas de cette façon, de sorte qu'il faut probablement ajouter d'autres utilisateurs.