Ito ang command na git-remote-gcrypt na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
git-remote-gcrypt - GNU Privacy Guard-naka-encrypt na git remote
DESCRIPTION
Ang mga remote helper program ay hinihimok ng git para pangasiwaan ang network transport. Itong katulong
humahawak gcrypt:: Mga URL na mag-a-access sa isang malayuang imbakan na naka-encrypt gamit ang GPG, gamit ang aming
custom na format.
Ang mga sinusuportahang lokasyon ay lokal, rsync:// at sftp: //, kung saan naka-imbak ang repositoryo bilang a
set ng mga file, o sa halip ay anuman kung saan ang gcrypt ay mag-iimbak ng parehong representasyon sa a
git repository, naka-bridge sa arbitrary git transport.
Ang layunin ay magbigay ng kumpidensyal, napatunayang git storage at pakikipagtulungan gamit
karaniwang hindi pinagkakatiwalaang mga host o serbisyo ng file. MANGYARING tulungan kaming suriin kung gaano namin ito natutugunan
layunin ng disenyo!
TANDAAN:
Ito ay isang bersyon ng pag-unlad -- MAAARING MAGBAGO ang format ng repositoryo.
Mabilis
· I-install git-remote-gcrypt sa pamamagitan ng pagpapatakbo ng ibinigay install.sh script.
· Lumikha ng naka-encrypt na remote sa pamamagitan ng pagtulak dito:
git remote magdagdag ng cryptremote gcrypt::rsync://example.com:repo
git push cryptremote master
> gcrypt: Pagse-set up ng bagong repository
> gcrypt: Ang Remote ID ay :id:7VigUnLVYVtZx8oir34R
> [higit pang mga linya..]
> Upang i-gcrypt::[...]
> * [bagong sangay] master -> master
Configuration
Ang mga sumusunod na git-config(1) mga variable ay suportado:
remote. .gcrypt-mga kalahok
gcrypt.mga kalahok
Listahan ng mga key identifier ng GPG na pinaghihiwalay ng espasyo. Ang remote ay naka-encrypt sa mga ito
mga kalahok at tanging mga lagda mula sa mga ito ang tinatanggap. gpg -k naglilista ng lahat ng pampubliko
mga susi na alam mo.
Kung hindi nakatakda ang opsyong ito, ine-encrypt namin ang iyong default na key at tinatanggap namin ang anumang wastong
lagda. Ang pag-uugali na ito ay maaari ding hilingin nang tahasan sa pamamagitan ng pagtatakda ng mga kalahok
sa simple.
Ang gcrypt-mga kalahok mas inuuna ang setting sa remote kaysa sa repository
nagbabago gcrypt.mga kalahok.
remote. .gcrypt-publish-participants
gcrypt.publish-participants
Bilang default, ang mga gpg key id ng mga kalahok ay natatakpan sa pamamagitan ng pag-encrypt gamit
gpg -R. Ang pagtatakda ng opsyong ito sa totoo hindi pinapagana ang panukalang panseguridad na iyon.
Ang problema sa paggamit gpg -R ay iyon upang i-decrypt, sinusubukan ng gpg ang bawat magagamit na lihim
susi sa turn hanggang sa makahanap ito ng magagamit na susi. Maaari itong magresulta sa hindi kinakailangang passphrase
mga senyas
remote. .gcrypt-signingkey
user.signingkey
(Ang huli ay mula sa regular na configuration ng git) Ang susi na gagamitin para sa pagpirma. Dapat mo
itakda user.signingkey kung ang iyong default na signing key ay hindi bahagi ng kalahok
listahan. Maaari mong gamitin ang per-remote na bersyon para mag-sign ng iba't ibang remote gamit ang iba
mga susi.
Kapaligiran MGA VARIABLE
GCRYPT_FULL_REPACK
Pinipilit ng variable na kapaligiran na ito ang buong repack kapag itinutulak.
HALIMBAWA
Paano mag-set up ng remote para sa dalawang kalahok:
git remote magdagdag ng cryptremote gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-participants "KEY1 KEY2"
git push cryptremote master
Paano gumamit ng git backend:
# pansinin na ang target na git repo ay dapat na umiiral na at ang nito
Ang # `next` branch ay mapapatungan!
git remote magdagdag ng gitcrypt gcrypt::[protektado ng email]:repo#next
git push gitcrypt master
Ang fragment ng URL (# Susunod dito) ay nagpapahiwatig kung aling backend branch ang ginagamit.
NOTA
Pakikipagtulungan
Ang pag-encrypt ng manifest ay ina-update para sa bawat push upang tumugma sa kalahok
pagsasaayos. Ang bawat pushing user ay dapat magkaroon ng mga pampublikong key ng lahat ng mga collaborator at
tamang config ng kalahok.
Dependencies
rsync at kulutan para sa mga remote rsync: at sftp: ayon sa pagkakabanggit. Ang pangunahing executable
nangangailangan ng POSIX-compliant na shell na sumusuporta lokal.
GNU Privacy Bantay
Parehong sinusuportahan ang GPG 1.4 at 2. Kailangan mo ng personal na GPG key. configuration ng GPG
nalalapat sa mga pagpipilian sa algorithm para sa public-key encryption, simetriko encryption, at
pagpirma. Tingnan mo lalaki gpg para sa karagdagang impormasyon.
Malayo ID
Ang Remote ID ay hindi lihim; sinisiguro lamang nito na ang dalawang repositoryo na nilagdaan ng
ang parehong gumagamit ay maaaring makilala. Makakakita ka ng babala kung magbabago ang Remote ID,
na dapat lang mangyari kung muling ginawa ang remote.
Repository format
EncSign(X): Mag-sign at Mag-encrypt sa GPG key holder
I-encrypt(K,X): I-encrypt gamit ang symmetric-key algorithm
Hash(X): SHA-2/256
B: listahan ng sangay
L: listahan ng hash (Hi) at susi (Ki) para sa bawat packfile
R: Remote ID
Upang isulat ang imbakan:
I-imbak ang bawat packfile P as I-encrypt(Ki, P) → P' sa filename Hi
saan Ki ay isang bagong random na string at Hash(P') → Hi
Mag-imbak EncSign(B || L || R) sa manifest
Para basahin ang repositoryo:
Kumuha ng manifest, i-decrypt at i-verify gamit ang GPG keyring → (B, L, R)
Babala kung R hindi tumutugma sa dating nakitang Remote ID
para sa bawat isa Kumusta, Ki in L:
Kumuha ng file Hi mula sa server → P'
Patunayan Hash(P') posporo Hi
I-decrypt P' paggamit Ki → P pagkatapos ay buksan P kasama ang git
Talaan ng mga kargamento file
Halimbawa ng manifest file (may ellipsis para sa kaiklian):
$ 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
Ang bawat item ay umaabot hanggang sa bagong linya, at tumutugma sa isa sa mga sumusunod:
Git object id at ang ref nito
mag-impake : :
Packfile hash (Hi) at kaukulang symmetric key (Ki).
panatilihin : :
Packfile hash at ang repack generation nito
repo
Ang remote id
extn ...
Extension field, napanatili ngunit hindi ginagamit.
PAG-DETECTION GCRYPT MAGpahinga
Upang makita kung ang isang git url ay isang gcrypt repo, gamitin ang: git-remote-gcrypt --check url Exit status kung
0 kung ang repo ay umiiral at maaaring i-decrypt, 1 kung ang repo ay gumagamit ng gcrypt ngunit hindi maaari
decrypted, at 100 kung ang repo ay hindi naka-encrypt sa gcrypt (o hindi ma-access).
Tandaan na kailangan nitong kunin ang mga nilalaman ng repo sa lokal na git repository, katulad ng
ay tapos na kapag gumagamit ng isang gcrypt repo.
Gumamit ng git-remote-gcrypt online gamit ang mga serbisyo ng onworks.net