web-dev-qa-db-ja.com

暗号化されたgitリポジトリの設定

状況

こんにちは、暗号化されたgitでデータを保存したいと思います( bitbucket または github などのプラットフォーム)。したがって、質問:

質問

私は別の手間のかからない方法を探しています:
bitbucketの暗号化されたリポジトリ(/ github)を設定する方法?さて、私はgitを初めて使用するので、すべての必要なステップまたはステップバイステップの指示をいただければ幸いです。

"研究"

git-crypt
git-crypt を見つけましたが、サイト上では単一ファイルの暗号化を目的としていると記載されています。リポジトリ全体を暗号化したい場合は git-remote-gcrypt に転送します。

git-remote-gcrypt
README.rst に、彼らはそれを

クイックスタート

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

以下

# 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

試す

私は完全なリポジトリ暗号化を好むので、QuickstartExampleのバリエーションを使用してgit-remote-gcryptを試しました。これまでの説明に従って、既存のリポジトリをプッシュしてみました。これは次のようになります:(注:ユーザー名を意図的にuserに変更しました)

-> with ssh提供された例のように

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

またはhttps(うまくいった)

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

それでも、ユーザーを追加する方法だけでは理解できませんバックアップをプル(私のgpgキーがローカルで生成されているため)!? git-remote-gcryptの使用法については、お気軽にご回答ください。

31
gr4nt3d

無料のオープンソースツールは Keybase です。

Gitはリモートヘルパーをサポートします。そして、オープンソースのものを作りました。

Keybaseのリモートヘルパーは、すべての暗号化を実行しながら、gitにその役割を任せます。これは印象的に聞こえるかもしれませんが、Keybaseは最初からgitを再実装していません。優れたgo-gitプロジェクトを搭載したリモートヘルパーを提供しています。

表に示します:(1)暗号、(2)チーム+マルチデバイスキー管理、(3)より安全なアイデンティティの概念。

エンドツーエンドで暗号化されています。たとえば、GitHubのようにホストされていますが、解読できるのはあなた(およびチームメイト)だけです。キーベースにとって、すべては文字化けした混乱です。あなたにとって、それは追加のステップのない定期的なチェックアウトです。

リポジトリ名とブランチ名でさえ暗号化されているため、Keybaseのスタッフや侵入者には読めません。

チームワークは Keybase Teams でサポートされています:

キーベースチームは、柔軟なメンバーシップを備えた、指名された人々のグループです。 Treehouseというプロジェクトに取り組んでいるとしましょう。キーベースにツリーハウスを登録できます。このチーム名は普遍的です。特定の名前を持つキーベースチームは1つだけです。

チームはチャットとチャネルを取得します。チャットはSlackやDiscordに少し似ています。

ただし、Keybaseチームワークはエンドツーエンドで暗号化されているため、サーバーのハッキングを心配する必要はありません。

Keybase

19
harrymc