Đây là lệnh git-remote-gcrypt có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
git-remote-gcrypt - GNU Privacy Guard được mã hóa bằng git từ xa
MÔ TẢ
Các chương trình trợ giúp từ xa được gọi bởi git để xử lý truyền tải mạng. Người trợ giúp này
xử lý gcrypt :: Các URL sẽ truy cập vào một kho lưu trữ từ xa được mã hóa bằng GPG, sử dụng
định dạng tùy chỉnh.
Các vị trí được hỗ trợ là địa phương, rsync: // và sftp: //, nơi kho lưu trữ được lưu trữ dưới dạng
tập hợp các tệp hoặc thay vào đó là bất kỳ trong đó gcrypt sẽ lưu trữ cùng một đại diện trong một
kho lưu trữ git, bắc cầu qua quá trình vận chuyển git tùy ý.
Mục đích là cung cấp bộ nhớ git bí mật, được xác thực và cộng tác bằng cách sử dụng
máy chủ hoặc dịch vụ tệp không đáng tin cậy điển hình. HÃY giúp chúng tôi đánh giá xem chúng tôi đáp ứng điều này tốt như thế nào
mục tiêu thiết kế!
LƯU Ý:
Đây là phiên bản phát triển - Định dạng kho lưu trữ CÓ THỂ THAY ĐỔI.
Bắt đầu nhanh
· Cài đặt git-remote-gcrypt bằng cách chạy cung cấp cài đặt.sh kịch bản.
· Tạo một điều khiển từ xa được mã hóa bằng cách đẩy đến nó:
git remote add cryptremote gcrypt :: rsync: //example.com: repo
git đẩy chủ mật mã
> gcrypt: Thiết lập kho lưu trữ mới
> gcrypt: ID từ xa là: id: 7VigUnLVYVtZx8oir34R
> [thêm dòng ..]
> Tới gcrypt :: [...]
> * [chi nhánh mới] master -> master
CẤU HÌNH
Sau đây git-config(1) các biến được hỗ trợ:
Xa xôi. .gcrypt-tham gia
gcrypt.người tham gia
Danh sách số nhận dạng khóa GPG được phân tách bằng dấu cách. Điều khiển từ xa được mã hóa cho những
những người tham gia và chỉ chữ ký từ những chữ ký này được chấp nhận. gpg -k liệt kê tất cả công khai
chìa khóa bạn biết.
Nếu tùy chọn này không được đặt, chúng tôi mã hóa thành khóa mặc định của bạn và chấp nhận bất kỳ
Chữ ký. Hành vi này cũng có thể được yêu cầu rõ ràng bằng cách thiết lập người tham gia
đến đơn giản.
Sản phẩm gcrypt-tham gia cài đặt trên điều khiển từ xa được ưu tiên hơn so với kho lưu trữ
biến gcrypt.người tham gia.
Xa xôi. .gcrypt-xuất bản-người tham gia
gcrypt.publish-tham gia
Theo mặc định, id khóa gpg của những người tham gia bị che khuất bằng cách mã hóa bằng cách sử dụng
gpg -R. Đặt tùy chọn này thành đúng vô hiệu hóa biện pháp bảo mật đó.
Vấn đề với việc sử dụng gpg -R đó là để giải mã, gpg thử từng bí mật có sẵn
lần lượt cho đến khi tìm thấy chìa khóa có thể sử dụng được. Điều này có thể dẫn đến cụm mật khẩu không cần thiết
lời nhắc.
Xa xôi. .gcrypt-signkey
user.signkey
(Cái sau từ cấu hình git thông thường) Chìa khóa để sử dụng để ký. Bạn nên
định user.signkey nếu khóa ký mặc định của bạn không phải là một phần của người tham gia
danh sách. Bạn có thể sử dụng phiên bản cho từng điều khiển từ xa để ký các điều khiển từ xa khác nhau bằng cách sử dụng
phím.
MÔI TRƯỜNG BIẾN
GCRYPT_FULL_REPACK
Biến môi trường này buộc đóng gói lại đầy đủ khi đẩy.
VÍ DỤ
Cách thiết lập điều khiển từ xa cho hai người tham gia:
git remote add cryptremote gcrypt :: rsync: //example.com: repo
git config remote.cryptremote.gcrypt-tham gia "KEY1 KEY2"
git đẩy chủ mật mã
Cách sử dụng chương trình phụ trợ git:
# lưu ý rằng repo git đích phải đã tồn tại và
nhánh # `tiếp theo` sẽ bị ghi đè!
git remote thêm gitcrypt gcrypt ::[email được bảo vệ]: repo # tiếp theo
git đẩy gitcrypt chủ
Đoạn URL (#Kế tiếp ở đây) cho biết nhánh phụ trợ nào được sử dụng.
GHI CHÚ
SỰ HỢP TÁC
Mã hóa của tệp kê khai được cập nhật cho mỗi lần đẩy để khớp với người tham gia
cấu hình. Mỗi người dùng đẩy phải có khóa công khai của tất cả các cộng tác viên và
đúng cấu hình người tham gia.
Sự phụ thuộc
rsync và quăn lại cho điều khiển từ xa đồng bộ hóa: và sftp: tương ứng. Thực thi chính
yêu cầu trình bao tương thích với POSIX hỗ trợ địa phương.
GNU Quyền riêng tư Lực lượng Cảnh sát
Cả GPG 1.4 và 2 đều được hỗ trợ. Bạn cần một khóa GPG cá nhân. Cấu hình GPG
áp dụng cho các lựa chọn thuật toán cho mã hóa khóa công khai, mã hóa đối xứng và
ký kết. Nhìn thấy người đàn ông gpg để biết thêm thông tin chi tiết.
Xa ID
ID từ xa không phải là bí mật; nó chỉ đảm bảo rằng hai kho được ký bởi
cùng một người dùng có thể được phân biệt. Bạn sẽ thấy cảnh báo nếu ID từ xa thay đổi,
điều này sẽ chỉ xảy ra nếu điều khiển từ xa được tạo lại.
Kho Định dạng
EncSign (X): Ký và Mã hóa với chủ sở hữu khóa GPG
Mã hóa (K, X): Mã hóa bằng thuật toán khóa đối xứng
Băm (X): SHA-2/256
B: danh sách chi nhánh
L: danh sách băm (Hi) và khóa (Ki) cho mỗi packfile
R: ID từ xa
Để viết kho lưu trữ:
Lưu trữ từng packfile P as Mã hóa (Ki, P) → P' trong tên tệp Hi
Ở đâu Ki là một chuỗi ngẫu nhiên mới và Băm (P ') → Hi
Cửa hàng sách EncSign (B || L || R) trong bản kê khai
Để đọc kho lưu trữ:
Nhận tệp kê khai, giải mã và xác minh bằng cách sử dụng khóa GPG → (NS, L, R)
Cảnh báo nếu R không khớp với ID từ xa đã thấy trước đây
cho mỗi Chào, Ki in L:
Có được file Hi từ máy chủ → P'
Xác minh Băm (P ') diêm Hi
Giải mã P' sử dụng Ki → P sau đó mở P với git
Tệp kê khai hồ sơ
Tệp kê khai mẫu (có dấu chấm lửng cho ngắn gọn):
$ gpg -d 91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a
542051c7cd152644e4995bda63cc3ddffd635958 refs/heads/next
3c9e76484c7596eff70b21cbe58408b2774bedad refs/heads/master
pack :SHA256:f2ad50316...cd4ba67092dc4 z8YoAnFpMlW...3PkI2mND49P1qm
pack :SHA256:a6e17bb4c...426492f379584 82+k2cbiUn7...dgXfyX6wXGpvVa
keep :SHA256:f2ad50316...cd4ba67092dc4 1
repo: id: OYiSleGirtLubEVqJpFF
Mỗi mục kéo dài cho đến dòng mới và khớp với một trong các mục sau:
Id đối tượng Git và bản tham chiếu của nó
đóng gói : :
Gói băm (Hi) và khóa đối xứng tương ứng (Ki).
giữ : :
Băm Packfile và thế hệ repack của nó
repo
Id từ xa
mở rộng hữu ích. Cảm ơn !
Trường mở rộng, được bảo tồn nhưng không sử dụng.
PHÁT HIỆN GCRYPT LÊN ĐỈNH
Để phát hiện xem url git có phải là repo gcrypt hay không, hãy sử dụng: git-remote-gcrypt --kiểm tra url Trạng thái thoát nếu
0 nếu repo tồn tại và có thể được giải mã, 1 nếu repo sử dụng gcrypt nhưng không thể
được giải mã và 100 nếu repo không được mã hóa bằng gcrypt (hoặc không thể truy cập).
Lưu ý rằng điều này phải tìm nạp nội dung kho lưu trữ vào kho lưu trữ git cục bộ, giống như
được thực hiện khi sử dụng repo gcrypt.
Sử dụng git-remote-gcrypt trực tuyến bằng các dịch vụ onworks.net