Configurare un repository git crittografato


30

Situazione

Ciao, vorrei salvare i dati con git, crittografato (su alcune piattaforme come bitbucket o github ). Pertanto la domanda:

Domanda

Sto cercando diversi modi senza problemi su:
Come impostare un repository crittografato su bitbucket (/ github)? Ora sono nuovo di Git, quindi un'istruzione con tutti i passaggi necessari o passo dopo passo sarebbe molto apprezzata!

"Ricerca"

git-crypt
Ho trovato git-crypt , ma sul sito si dice che è destinato alla crittografia di file singoli. Se si voleva crittografare l'intero repository, si inoltrano a git-remote-gcrypt .

git-remote-gcrypt
Nel loro README.rst lo hanno detto semplice come

Avvio veloce

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

o sotto

Esempi

# notice that the target git repo must already exist and its
# `next` branch will be overwritten!
git remote add gitcrypt gcrypt::git@example.com:repo#next
git push gitcrypt master

Cerca

Preferisco la crittografia completa del repository, quindi ho provato git-remote-gcryptcon le varianti di Quickstart ed Esempio . Finora ho provato a spingere un repository esistente seguendo le loro istruzioni. Il che produce questo: (nota: ho volutamente cambiato il nome utente in user)

-> con sshcome nell'esempio fornito

[...]/git_test$ git remote add origin gcrypt::git@bitbucket.org:user/test.git
[...]/git_test$ git push -u origin --allgcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: git@bitbucket.org: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::git@bitbucket.org:user/test.git'

o con https(che ha funzionato)

[...]/git_test$ git remote add gitcrypt gcrypt::https://user@bitbucket.org/user/test.git
[...]/git_test$ git push -u gitcrypt --allgcrypt: Development version -- Repository format MAY CHANGE
Password for 'https://user@bitbucket.org': 
gcrypt: Repository not found: https://user@bitbucket.org/user/test.git
gcrypt: Setting up new repository
Password for 'https://user@bitbucket.org': 
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://user@bitbucket.org': 
To gcrypt::https://user@bitbucket.org/user/test.git
 * [new branch]      master -> master
Branch master konfiguriert zum Folgen von Remote-Branch master von gitcrypt.

Tuttavia, non capisco come aggiungere utenti o anche solo tirare il mio backup su un altro computer (poiché la mia chiave gpg è stata generata localmente)!? Sentiti libero di rispondere solo sull'uso di git-remote-gcrypt.


Questi potrebbero essere correlati: - superuser.com/questions/676497/… Il link [filter] [3] fornito mi ha portato a credere che questo sia un uso complicato di una funzionalità git che cambia codice (/ contenuto) su push / pull. E l'en / de-cryption è fatto dagli script forniti. In tal caso, preferirei piuttosto un modo più semplice da installare senza il fastidio di quegli script: programmi come git-remote-gcrypt. Inoltre questo rivelerebbe il contenuto del repository, giusto?
gr4nt3d,

- superuser.com/questions/900656/… Domanda simile specificamente con bitbucket che non ha risposta.
gr4nt3d,

1
Dai
Nifle

@Nifle sembra essere il metodo di filtro come nel mio primo commento, giusto? Questo crittografa l'intero repository o solo i contenuti dei file?
gr4nt3d,

1
Hai mai guardato git-remote-gcrypt o Keybase ?
harrymc,

Risposte:


19

Uno strumento gratuito e open source è Keybase :

Git supporta gli helper remoti. E ne abbiamo creato uno open source.

L'assistente remoto di Keybase esegue tutte le criptovalute lasciando che git faccia la sua cosa. Potrebbe sembrare impressionante, ma Keybase non ha reimplementato Git da zero. Forniamo un supporto remoto, alimentato dall'eccellente progetto go-git, a cui abbiamo iniziato a contribuire.

Portiamo in tavola: (1) crypto, (2) team + multi-device key management, (3) un concetto più sicuro di identità.

È crittografato end-to-end. È ospitato, come, diciamo, GitHub, ma solo tu (e i tuoi compagni di squadra) potete decifrarli. Per Keybase, tutto è solo un pasticcio confuso. Per te, è un checkout regolare senza passaggi aggiuntivi.

Anche i nomi dei repository e i nomi delle filiali sono crittografati e quindi illeggibili dal personale o dagli infiltrati di Keybase.

Il lavoro di squadra è supportato tramite team Keybase :

Un team di Keybase è un gruppo di persone nominato, con appartenenza flessibile. Diciamo che lavori su un progetto chiamato Treehouse. È possibile registrare la casa sull'albero su Keybase. Il nome di questa squadra è universale; può esserci un solo team Keybase con un determinato nome.

I team ricevono chat e canali. La chat assomiglia un po 'a Slack o Discord:

Ma il lavoro di gruppo di Keybase è crittografato end-to-end, il che significa che non devi preoccuparti degli hack del server.

Keybase


2
Bel strumento lì! Tuttavia, sembra essere un ecosistema chiuso. Non ho trovato alcun suggerimento che mostra come lavorare con utenti non Keybase. È possibile? Immagino che forzare un'intera squadra a usare questo strumento o essere dipendente da esso superi ancora i benefici.
gr4nt3d,

Questo è open-source. Uno strumento che hai sviluppato sarebbe più aperto?
harrymc,

Mi riferivo all'uso; e non sono sicuro di come funzionano effettivamente gli helper remoti git . Si potrebbe usare una chiave (che non è pgp, ma qualcosa di nuovo, giusto?) E questo aiuto, ma senza la GUI?
gr4nt3d,

Non posso rispondere a queste domande - non ci ho approfondito molto.
harrymc,

possono funzionare con strumenti di terze parti?
Mikey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.