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/config
file 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/attributes
uso:
myPrivateInfosFile filter=gpg diff=gpg
Nel tuo .git/config
file 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 denied
anche se scrivo direttamente la riga di comando mi viene in mente Bad Decrypt
-nopad
.
-nopad
funziona 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.
exec
quando si inseriscono questi comandi in uno script esterno.