Ini ialah arahan git-remote-gcrypt yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
git-remote-gcrypt - git remote yang disulitkan Pengawal Privasi GNU
DESCRIPTION
Program pembantu jauh digunakan oleh git untuk mengendalikan pengangkutan rangkaian. Pembantu ini
mengendalikan gcrypt:: URL yang akan mengakses repositori jauh yang disulitkan dengan GPG, menggunakan kami
format tersuai.
Lokasi yang disokong ialah tempatan, rsync:// and sftp: //, di mana repositori disimpan sebagai a
set fail, atau sebaliknya mana-mana di mana gcrypt akan menyimpan perwakilan yang sama dalam a
repositori git, dirapatkan ke atas pengangkutan git sewenang-wenangnya.
Matlamatnya adalah untuk menyediakan storan git yang sulit dan disahkan dan menggunakan kerjasama
hos atau perkhidmatan fail biasa yang tidak dipercayai. SILA bantu kami menilai sejauh mana kami memenuhi perkara ini
matlamat reka bentuk!
PERHATIAN:
Ini ialah versi pembangunan -- Format repositori MUNGKIN BERUBAH.
Mula Pantas
· Pasang git-remote-gcrypt dengan menjalankan yang dibekalkan pasang.sh skrip.
· Buat alat kawalan jauh yang disulitkan dengan menolaknya:
git remote tambah cryptremote gcrypt::rsync://example.com:repo
git push cryptremote master
> gcrypt: Menyediakan repositori baharu
> gcrypt: ID Jauh ialah :id:7VigUnLVYVtZx8oir34R
> [ lagi baris .. ]
> Untuk gcrypt::[...]
> * [cawangan baru] tuan -> tuan
CONFIGURATION
Berikut git-config(1) pembolehubah disokong:
jauh. .gcrypt-peserta
gcrypt.participants
Senarai dipisahkan ruang bagi pengecam kunci GPG. Alat jauh disulitkan kepada ini
peserta dan hanya tandatangan daripada mereka diterima. gpg -k menyenaraikan semua awam
kunci yang anda tahu.
Jika pilihan ini tidak ditetapkan, kami menyulitkan ke kunci lalai anda dan menerima mana-mana yang sah
tandatangan. Tingkah laku ini juga boleh diminta secara eksplisit dengan menetapkan peserta
kepada mudah.
. gcrypt-peserta tetapan pada alat kawalan jauh lebih diutamakan daripada repositori
berubah-ubah gcrypt.participants.
jauh. .gcrypt-publish-participants
gcrypt.publish-participants
Secara lalai, id kunci gpg peserta dikaburkan dengan menyulitkan menggunakan
gpg -R. Menetapkan pilihan ini kepada benar melumpuhkan langkah keselamatan itu.
Masalah menggunakan gpg -R ialah untuk menyahsulit, gpg mencuba setiap rahsia yang ada
kunci secara bergilir-gilir sehingga ia menemui kunci yang boleh digunakan. Ini boleh mengakibatkan frasa laluan yang tidak perlu
meminta.
jauh. .gcrypt-signingkey
user.signingkey
(Yang terakhir dari konfigurasi git biasa) Kunci untuk digunakan untuk menandatangani. Kamu patut
menetapkan user.signingkey jika kunci tandatangan lalai anda bukan sebahagian daripada peserta
senarai. Anda boleh menggunakan versi per-jauh untuk menandatangani alat kawalan jauh yang berbeza menggunakan alat kawalan jauh yang berbeza
kunci.
PERSEKITARAN PELBAGAI
GCRYPT_FULL_REPACK
Pembolehubah persekitaran ini memaksa pembungkusan semula penuh apabila menolak.
CONTOH
Cara menyediakan alat kawalan jauh untuk dua peserta:
git remote tambah cryptremote gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-participants "KEY1 KEY2"
git push cryptremote master
Cara menggunakan backend git:
# perhatikan bahawa repo git sasaran mesti sudah wujud dan ia
# Cawangan `seterusnya` akan ditimpa!
git remote tambah gitcrypt gcrypt::[e-mel dilindungi]:repo#next
git push gitcrypt master
Serpihan URL (#seterusnya di sini) menunjukkan cawangan bahagian belakang yang digunakan.
NOTA
Kerjasama
Penyulitan manifes dikemas kini untuk setiap push agar sepadan dengan peserta
konfigurasi. Setiap pengguna menolak mesti mempunyai kunci awam semua kolaborator dan
konfigurasi peserta yang betul.
Kebergantungan
rsync and curl untuk alat kawalan jauh rsync: and sftp: masing-masing. Boleh laku utama
memerlukan shell yang mematuhi POSIX yang menyokong tempatan.
GNU Privasi Guard
Kedua-dua GPG 1.4 dan 2 disokong. Anda memerlukan kunci GPG peribadi. Konfigurasi GPG
digunakan pada pilihan algoritma untuk penyulitan kunci awam, penyulitan simetri dan
menandatangani. Lihat lelaki gpg untuk maklumat lanjut.
Jauh ID
ID Jauh bukan rahsia; ia hanya memastikan bahawa dua repositori yang ditandatangani oleh
pengguna yang sama boleh dibezakan. Anda akan melihat amaran jika ID Jauh berubah,
yang sepatutnya hanya berlaku jika alat kawalan jauh dicipta semula.
Repositori format
EncSign(X): Tandatangan dan Sulitkan kepada pemegang kunci GPG
Sulitkan(K,X): Sulitkan menggunakan algoritma kunci simetri
Hash(X): SHA-2/256
B: senarai cawangan
L: senarai cincang (Hi) dan kunci (Ki) untuk setiap fail pek
R: ID Jauh
Untuk menulis repositori:
Simpan setiap fail pek P as Sulitkan(Ki, P) → P' dalam nama fail Hi
di mana Ki ialah rentetan rawak baharu dan Hash(P') → Hi
Kedai EncSign(B || L || R) dalam manifes
Untuk membaca repositori:
Dapatkan manifes, nyahsulit dan sahkan menggunakan cincin kekunci GPG → (B, L, R)
Beri amaran jika R tidak sepadan dengan ID Jauh yang dilihat sebelum ini
untuk setiap Hi, Ki in L:
Dapatkan fail Hi daripada pelayan → P'
Sahkan Hash(P') perlawanan Hi
Decrypt P' menggunakan Ki → P kemudian buka P dengan git
Nyata fail
Contoh fail manifes (dengan elipsis untuk ringkas):
$ 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
Setiap item dilanjutkan sehingga baris baharu, dan sepadan dengan salah satu daripada yang berikut:
id objek Git dan refnya
membungkus : :
Cincang fail pek (Hi) dan kunci simetri yang sepadan (Ki).
menyimpan : :
Cincang Packfile dan penjanaan pek semulanya
repo
Id jauh
samb ...
Medan sambungan, dipelihara tetapi tidak digunakan.
MENGESAN GCRYPT REHAT
Untuk mengesan sama ada url git ialah repo gcrypt, gunakan: git-remote-gcrypt --check url Status keluar jika
0 jika repo wujud dan boleh dinyahsulit, 1 jika repo menggunakan gcrypt tetapi tidak boleh
dinyahsulit, dan 100 jika repo tidak disulitkan dengan gcrypt (atau tidak dapat diakses).
Ambil perhatian bahawa ini perlu mengambil kandungan repo ke dalam repositori git tempatan, sama seperti
dilakukan apabila menggunakan repo gcrypt.
Gunakan git-remote-gcrypt dalam talian menggunakan perkhidmatan onworks.net