Configurando um repositório git criptografado

20

Situação

Eu gostaria de salvar dados com o git, criptografado (em alguma plataforma como bitbucket ou github ). Portanto, a pergunta:

Pergunta

Estou procurando maneiras diferentes e sem complicações:
Como configurar um repositório criptografado em bitbucket (/ github)? Agora, eu sou novo para git, assim, uma instrução com todos os passos necessários ou passo a passo seria muito apreciada!

"Pesquisa"

git-crypt
Eu encontrei git-crypt , mas no site é mencionado que é destinado a criptografia de arquivo único. Se alguém quiser criptografar todo o repositório, ele encaminhará para git-remote-gcrypt .

git-remote-gcrypt
Em seu README.rst eles colocam como simples

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 abaixo de

Examples

# 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

Tenta

Eu prefiro criptografia de repositório completo, por isso tentei git-remote-gcrypt com variações do Início rápido e Exemplo . Até agora eu tentei empurrar um repositório existente seguindo suas instruções. O que rende isso: (nota: alterei propositalmente o nome de usuário para user )

- > com ssh como no exemplo fornecido

[...]/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 com https (que funcionou)

[...]/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.

No entanto, eu não entendo como adicionar usuários ou mesmo que apenas puxe meu backup para outra máquina (já que minha chave gpg foi gerada localmente)! Sinta-se à vontade para responder apenas sobre o uso de git-remote-gcrypt .

    
por gr4nt3d 03.01.2017 / 15:25

1 resposta

7

Uma ferramenta gratuita e de código aberto é Base de chaves :

Git supports remote helpers. And we've made an open source one.

Keybase's remote helper performs all the crypto while letting git do its thing. This might sound impressive, but Keybase has not reimplemented git from scratch. We provide a remote helper, powered by the excellent go-git project, which we've begun contributing to.

We bring to the table: (1) crypto, (2) team + multi-device key management, (3) a safer concept of identity.

It is end-to-end encrypted. It's hosted, like, say, GitHub, but only you (and teammates) can decrypt any of it. To Keybase, all is but a garbled mess. To you, it's a regular checkout with no extra steps.

Even your repository names and branch names are encrypted, and thus unreadable by Keybase staff or infiltrators.

Trabalho em equipe é suportado via Equipes do Keybase :

A Keybase team is a named group of people, with flexible membership. Let's say you work on a project called Treehouse. You could register treehouse on Keybase. This team name is universal; there can be only one Keybase team with a given name.

Teams get chats and channels. The chat looks a bit like Slack or Discord:

But Keybase teamwork is end-to-end encrypted, which means you don't have to worry about server hacks.

    
por 12.11.2017 / 11:27