Sulla base di questa domanda: crittografa i file prima di inviarli al cloud .
considerando openssl: ad esempio quando si utilizza openssl possiamo scrivere i file fooenc.sh:
#!/bin/sh
openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
e foodec.sh:
#!/bin/sh
openssl enc -bf -nopad -d -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
Nel .git/configfile nel repository è necessario specificare questi filtri;
[filter "crypt"]
clean = fooenc.sh
smudge = foodec.sh
ho provato questo approccio e mi è venuto in mente:
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
Dove suppongo di mettere questo * .sh?
Anche se provo a mettere
[filter "crypt"]
clean = openssl enc -bf -nopad -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
smudge = openssl enc -bf -nopad -d -pass pass:1KjeHD8d6YUI80bIIEAQ9iYr@njqLw3T
anche pensato che mi fosse successo:
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
Sono stati introdotti altri approcci come git-remote-encrypt o un altro usando GnuPG :
In .git/info/attributesuso:
myPrivateInfosFile filter=gpg diff=gpg
Nel tuo .git/configfile repository :
[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt
Alla fine, usando l' approccio git-remote-encrypt mi è successo:
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://example@bitbucket.org/ourstuffteam/our.git'
Niente di tutto ciò è stato un approccio riuscito.
** Secondo questo o altri nuovi approcci. Come posso crittografare i dati in git più correttamente in bitbucket? **
~/ourenc.sh: 1: ~/ourenc.sh: /home/mypc/ourenc.sh: Permission deniedanche se scrivo direttamente la riga di comando mi viene in mente Bad Decrypt
-nopad.
-nopadfunziona crittograferà. Il problema unico ora è come mettere i file .sh fuori dal repository poiché ho bisogno delle autorizzazioni per eseguirli all'interno .git/config. @Arjan questa non è una domanda duplicata poiché fornisce 3 approcci allo stesso problema, per questo motivo ha modificato questa domanda come se avessi suggerito di prendere questo problema come una domanda basata su un'altra e non duplicata. per risolvere i problemi di crittografia su git.
execquando si inseriscono questi comandi in uno script esterno.