web-dev-qa-db-fra.com

Configurer un dépôt git crypté

Situation

Je voudrais sauvegarder des données avec git, crypté (sur une plate-forme comme bitbucket ou github ). Donc la question:

Question

Je cherche différents moyens sans tracas sur:
Comment configurer un référentiel chiffré sur bitbucket (/ github)? Maintenant, je suis nouveau à git, donc une instruction avec toutes les étapes nécessaires ou étape par étape serait très appréciée!

"Recherche"

git-crypt
J'ai trouvé git-crypt , mais sur le site, il est mentionné qu'il est destiné au cryptage de fichier unique. Si l'on veut chiffrer tout le référentiel, il les envoie à git-remote-gcrypt .

git-remote-gcrypt
Dans leur fichier README.rst , ils le disent aussi simple que

Quickstart

git remote add cryptremote gcrypt::rsync://example.com:repo
git Push cryptremote master
> gcrypt: Setting up new repository
> gcrypt: Remote ID is :id:7VigUnLVYVtZx8oir34R
> [ more lines .. ]
> To gcrypt::[...]
> * [new branch]      master -> master

ou sous

Exemples

# notice that the target git repo must already exist and its
# `next` branch will be overwritten!
git remote add gitcrypt gcrypt::[email protected]:repo#next
git Push gitcrypt master

Essais

Je préfère le chiffrement de référentiel complet, c'est pourquoi j'ai essayé git-remote-gcrypt avec des variantes de l'exemple Quickstart et . Jusqu'à présent, j'ai essayé de pousser un référentiel existant en suivant leurs instructions. Ce qui donne ceci: (note: j'ai volontairement changé le nom d'utilisateur en user)

-> avec ssh comme dans l'exemple fourni

[...]/git_test$ git remote add Origin gcrypt::[email protected]:user/test.git
[...]/git_test$ git Push -u Origin --allgcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: [email protected]:user/test.git
gcrypt: Setting up new repository
gcrypt: Remote ID is :id: ...
Zähle Objekte: 10, Fertig.
Komprimiere Objekte: 100% (6/6), Fertig.
Total 10 (delta 0), reused 0 (delta 0)
gcrypt: Encrypting to: --throw-keyids --default-recipient-self
gcrypt: Requesting manifest signature
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
error: Fehler beim Versenden einiger Referenzen nach 'gcrypt::[email protected]:user/test.git'

ou avec https (qui a fonctionné)

[...]/git_test$ git remote add gitcrypt gcrypt::https://[email protected]/user/test.git
[...]/git_test$ git Push -u gitcrypt --allgcrypt: Development version -- Repository format MAY CHANGE
Password for 'https://[email protected]': 
gcrypt: Repository not found: https://[email protected]/user/test.git
gcrypt: Setting up new repository
Password for 'https://[email protected]': 
gcrypt: Remote ID is :id: ...
Zähle Objekte: 10, Fertig.
Komprimiere Objekte: 100% (6/6), Fertig.
Total 10 (delta 0), reused 0 (delta 0)
gcrypt: Encrypting to: --throw-keyids --default-recipient-self
gcrypt: Requesting manifest signature
Password for 'https://[email protected]': 
To gcrypt::https://[email protected]/user/test.git
 * [new branch]      master -> master
Branch master konfiguriert zum Folgen von Remote-Branch master von gitcrypt.

Néanmoins, je ne comprends pas comment ajouter des utilisateurs ou même simplement tirer ma sauvegarde sur une autre machine (car ma clé gpg était généré localement)!? N'hésitez pas à répondre à l'utilisation de git-remote-gcrypt.

26
gr4nt3d

Un outil gratuit et open-source est Keybase :

Git prend en charge les assistants à distance. Et nous en avons créé un open source.

L'assistant à distance de Keybase effectue tout le cryptage tout en laissant git faire son travail. Cela peut sembler impressionnant, mais Keybase n’a pas réimplémenté git. Nous fournissons une assistance à distance, optimisée par l'excellent projet go-git, auquel nous avons commencé à contribuer.

Nous apportons à la table: (1) le cryptage, (2) la gestion d’équipes + clés multiples, (3) un concept d’identité plus sûr.

Il est crypté de bout en bout. Il est hébergé, comme, par exemple, GitHub, mais seul vous (et vos coéquipiers) pouvez décrypter tout cela. Pour Keybase, tout n’est qu’un désordre déformé. Pour vous, c'est une commande régulière sans étapes supplémentaires.

Même vos noms de référentiels et de branches sont chiffrés et donc illisibles pour le personnel de Keybase ou les infiltrés.

Le travail d’équipe est pris en charge via les équipes Keybase :

Une équipe Keybase est un groupe de personnes nommées, avec une composition flexible. Disons que vous travaillez sur un projet appelé Treehouse. Vous pouvez enregistrer Treehouse sur Keybase. Ce nom d'équipe est universel. il ne peut y avoir qu'une seule équipe Keybase avec un nom donné.

Les équipes obtiennent des discussions et des canaux. Le chat ressemble un peu à Slack ou Discord:

Mais le travail d'équipe Keybase est crypté de bout en bout, ce qui signifie que vous n'avez pas à vous soucier des piratages de serveur.

Keybase

13
harrymc