Thiết lập kho lưu trữ git được mã hóa


30

Tình hình

Xin chào, tôi muốn lưu dữ liệu bằng git, được mã hóa (trên một số nền tảng như bitbucket hoặc github ). Do đó, câu hỏi:

Câu hỏi

Tôi đang tìm kiếm các cách không rắc rối khác nhau về:
Làm cách nào để thiết lập kho lưu trữ được mã hóa trên bitbucket (/ github)? Bây giờ, tôi chưa quen với git, do đó, một hướng dẫn với tất cả các bước cần thiết hoặc từng bước sẽ được đánh giá cao!

"Nghiên cứu"

git-crypt
Tôi đã tìm thấy git-crypt , nhưng trên trang web có đề cập rằng nó dành cho mã hóa tập tin duy nhất. Nếu một người muốn mã hóa toàn bộ kho lưu trữ, họ chuyển tiếp đến git-remote-gcrypt .

git-remote-gcrypt
Trong README.rst của họ, họ đặt nó đơn giản như

Bắt đầu nhanh

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

hoặc dưới

Ví dụ

# 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

Thử

Tôi thích mã hóa kho lưu trữ đầy đủ, do đó tôi đã thử git-remote-gcryptvới các biến thể của QuickstartVí dụ . Cho đến nay tôi đã cố gắng đẩy một kho lưu trữ hiện có bằng cách làm theo hướng dẫn của họ. Điều này mang lại điều này: (lưu ý: Tôi đã cố tình thay đổi tên người dùng thành user)

-> sshnhư trong ví dụ được cung cấp

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

hoặc với https(đã làm việc)

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

Tuy nhiên, tôi không hiểu cách thêm người dùng hoặc thậm chí chỉ cần kéo bản sao lưu của mình lên máy khác (vì khóa gpg của tôi được tạo cục bộ) !? Hãy trả lời về việc sử dụng git-remote-gcrypt.


Những điều này có thể liên quan: - superuser.com/questions/676497/, Liên kết [bộ lọc] [3] được cung cấp khiến tôi tin rằng đây là cách sử dụng khó khăn của chức năng git thay đổi mã (/ nội dung) khi đẩy / kéo. Và en- / de-cryption được thực hiện bởi các tập lệnh được cung cấp. Nếu đó là trường hợp, thì tôi thích cách dễ dàng hơn để thiết lập mà không gặp rắc rối với các tập lệnh đó - các chương trình như git-remote-gcrypt. Hơn nữa, điều này sẽ tiết lộ nội dung của kho lưu trữ, phải không?
gr4nt3d

- superuser.com/questions/900656/ ( Câu hỏi tương tự cụ thể với bitbucket không có câu trả lời.
gr4nt3d


@Nifle dường như là phương thức lọc như trong bình luận đầu tiên của tôi, phải không? Điều này có mã hóa toàn bộ repo hay chỉ nội dung tập tin?
gr4nt3d

1
Bạn đã xem git-remote-gcrypt hoặc Keybase chưa?
harrymc

Câu trả lời:


18

Một công cụ miễn phí và nguồn mở là Keybase :

Git hỗ trợ người trợ giúp từ xa. Và chúng tôi đã tạo một nguồn mở.

Trình trợ giúp từ xa của Keybase thực hiện tất cả các loại tiền điện tử trong khi để git làm việc của nó. Điều này nghe có vẻ ấn tượng, nhưng Keybase đã không thực hiện lại git từ đầu. Chúng tôi cung cấp một người trợ giúp từ xa, được hỗ trợ bởi dự án go-git tuyệt vời, mà chúng tôi đã bắt đầu đóng góp.

Chúng tôi mang đến bảng: (1) tiền điện tử, (2) nhóm + quản lý khóa đa thiết bị, (3) một khái niệm an toàn hơn về nhận dạng.

Nó được mã hóa đầu cuối. Nó được lưu trữ, như, nói, GitHub, nhưng chỉ bạn (và đồng đội) mới có thể giải mã bất kỳ thứ gì trong số đó. Đối với Keybase, tất cả chỉ là một mớ hỗn độn. Đối với bạn, đó là một kiểm tra thường xuyên không có thêm bước.

Ngay cả tên kho lưu trữ và tên chi nhánh của bạn cũng được mã hóa và do đó nhân viên Keybase hoặc người xâm nhập không thể đọc được.

Làm việc theo nhóm được hỗ trợ thông qua các Nhóm Keybase :

Nhóm Keybase là một nhóm người được đặt tên, với tư cách thành viên linh hoạt. Giả sử bạn làm việc trong một dự án có tên là Treehouse. Bạn có thể đăng ký nhà trên cây trên Keybase. Tên nhóm này là phổ quát; chỉ có thể có một nhóm Keybase với một tên cụ thể.

Các đội có được các cuộc trò chuyện và các kênh. Trò chuyện trông hơi giống Slack hoặc Discord:

Nhưng tinh thần đồng đội của Keybase được mã hóa từ đầu đến cuối, điều đó có nghĩa là bạn không phải lo lắng về việc hack máy chủ.

Cơ sở khóa


2
Công cụ tốt đấy! Tuy nhiên, nó dường như là một hệ sinh thái khép kín. Tôi không thể tìm thấy bất kỳ gợi ý nào cho thấy cách làm việc với người dùng không phải là Keybase. Điều này có thể không? Tôi đoán việc buộc cả một đội sử dụng công cụ này hoặc bị phụ thuộc vào nó vượt xa lợi ích vẫn còn.
gr4nt3d

Đây là nguồn mở. Một công cụ mà bạn phát triển sẽ mở hơn nữa?
harrymc

Tôi đã đề cập đến việc sử dụng; và không chắc chắn làm thế nào những người trợ giúp từ xa thực sự làm việc. Người ta có thể sử dụng một khóa (không phải là pgp, nhưng một cái gì đó mới, phải không?) Và người trợ giúp này nhưng không có gui?
gr4nt3d

Tôi không thể trả lời những câu hỏi này - tôi đã không đi sâu vào nó.
harrymc

công cụ của bên thứ 3 có thể làm việc với nó không?
Mikey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.