4

Исходя из этого вопроса:шифруйте файлы перед отправкой в облако.

Рассматривая 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-remote-encrypt или другой, использующий GnuPG:

В .git/info/attributes использовании атрибутов :

myPrivateInfosFile filter=gpg diff=gpg

В вашем репозитории .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-remote- encrypt, я понял:

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'

Ничто из этого не было успешным подходом.

** По этим или другим новым подходам. Как я могу более правильно зашифровать данные в git в bitbucket?**

1 ответ1

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 ключ (и секретный ключ, имя которого подразумевает, что это плохая идея), поэтому я решил просто скопировать мой на другую машину. К сожалению, это не работает таким образом, что нам, вероятно, нужно добавить других пользователей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .