Dit is de opdracht git-remote-gcrypt die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
git-remote-gcrypt - GNU Privacy Guard-gecodeerde git remote
PRODUCTBESCHRIJVING
Hulpprogramma's op afstand worden door git aangeroepen om netwerktransport af te handelen. Deze helper
handgrepen gcrypt:: URL's die toegang krijgen tot een externe repository die is versleuteld met GPG, met behulp van onze
aangepast formaat.
Ondersteunde locaties zijn lokaal, rsync:// en sftp: //, waar de repository is opgeslagen als een
set bestanden, of in plaats daarvan een waar gcrypt dezelfde representatie zal opslaan in een
git-repository, overbrugd over willekeurig git-transport.
Het doel is om vertrouwelijke, geverifieerde git-opslag en samenwerking te bieden met behulp van
typische niet-vertrouwde bestandshosts of services. Help ons alsjeblieft te evalueren hoe goed we hieraan voldoen
ontwerp doel!
NOTITIE:
Dit is een ontwikkelversie -- Repository formaat KAN VERANDEREN.
Snelle start
· Installeren git-remote-gcrypt door het bijgeleverde programma uit te voeren installeer.sh scripts.
· Maak een gecodeerde afstandsbediening door ernaar te pushen:
git remote voeg cryptremote toe gcrypt::rsync://example.com:repo
git push cryptremote master
> gcrypt: nieuwe repository opzetten
> gcrypt: Externe ID is :id:7VigUnLVYVtZx8oir34R
> [ meer regels .. ]
> Om te coderen::[...]
> * [nieuwe tak] meester -> meester
CONFIGURATIE
De volgende git-config(1) variabelen worden ondersteund:
op afstand. .gcrypt-deelnemers
gcrypt.deelnemers
Door spaties gescheiden lijst met GPG-sleutel-ID's. De afstandsbediening is hiermee versleuteld
deelnemers en alleen handtekeningen van deze worden geaccepteerd. GPG -k somt alle openbare op
sleutels die je kent.
Als deze optie niet is ingesteld, coderen we naar uw standaardsleutel en accepteren we elke geldige sleutel
handtekening. Dit gedrag kan ook expliciet worden aangevraagd door deelnemers in te stellen
naar simpel.
De gcrypt-deelnemers instelling op de afstandsbediening heeft voorrang op de repository
variabele gcrypt.deelnemers.
op afstand. .gcrypt-publish-deelnemers
gcrypt.publish-deelnemers
Standaard worden de gpg-sleutel-ID's van de deelnemers verborgen door middel van versleuteling
GPG -R. Zet deze optie op waar schakelt die beveiligingsmaatregel uit.
Het probleem met het gebruik van GPG -R is dat om te decoderen, gpg elk beschikbaar geheim probeert
sleutel om de beurt totdat het een bruikbare sleutel vindt. Dit kan resulteren in onnodige wachtwoordzin
vraagt.
op afstand. .gcrypt-ondertekeningssleutel
gebruiker.ondertekeningssleutel
(De laatste van de reguliere git-configuratie) De sleutel die moet worden gebruikt voor ondertekening. Je zou moeten
reeks gebruiker.ondertekeningssleutel als uw standaard ondertekeningssleutel geen deel uitmaakt van de deelnemer
lijst. U kunt de versie per afstandsbediening gebruiken om verschillende afstandsbedieningen te ondertekenen met verschillende
sleutels.
MILIEU VARIABELEN
GCRYPT_FULL_REPACK
Deze omgevingsvariabele dwingt volledige herverpakking af bij het pushen.
Voorbeelden
Een afstandsbediening instellen voor twee deelnemers:
git remote voeg cryptremote toe gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-deelnemers "KEY1 KEY2"
git push cryptremote master
Een git-backend gebruiken:
# merk op dat de doel-git-repo al moet bestaan en zijn
# `volgende` tak wordt overschreven!
git remote voeg gitcrypt toe gcrypt::[e-mail beveiligd]:repo#volgende
git push gitcrypt-master
Het URL-fragment (#De volgende hier) geeft aan welke backend-tak wordt gebruikt.
OPMERKINGEN
Samenwerking
De codering van het manifest wordt voor elke push bijgewerkt om overeen te komen met de deelnemer
configuratie. Elke duwende gebruiker moet de openbare sleutels van alle medewerkers hebben en
juiste deelnemersconfiguratie.
afhankelijkheden
rsync en krullen voor afstandsbedieningen rsync: en ftp: respectievelijk. Het belangrijkste uitvoerbare bestand
vereist een POSIX-compatibele shell die ondersteunt lokaal.
GNU Privacy bewaker
Zowel GPG 1.4 als 2 worden ondersteund. U heeft een persoonlijke GPG-sleutel nodig. GPG-configuratie
is van toepassing op algoritmekeuzes voor versleuteling met een openbare sleutel, symmetrische versleuteling en
ondertekenen. Zien man GPG voor meer informatie.
op Afstand ID
De Remote ID is niet geheim; het zorgt er alleen voor dat twee repositories ondertekend door de
dezelfde gebruiker kan worden onderscheiden. U ziet een waarschuwing als de Remote ID verandert,
wat alleen zou moeten gebeuren als de afstandsbediening opnieuw is gemaakt.
bewaarplaats Formaat
EncTeken(X): Onderteken en versleutel naar GPG-sleutelhouder
Versleutelen(K,X): Versleutelen met behulp van een algoritme met een symmetrische sleutel
Hasj(X): SHA-2/256
B: filiaal lijst
L: lijst van de hasj (Hi) en sleutel (Ki) voor elk pakketbestand
R: Externe ID
Om de repository te schrijven:
Sla elk pakketbestand op P as Versleutelen(Ki, P) → P' in bestandsnaam Hi
WAAR Ki is een nieuwe willekeurige tekenreeks en Hekje(P') → Hi
Shop EncTeken(B || L || R) in het manifest
Om de repository te lezen:
Ontvang manifest, decodeer en verifieer met behulp van GPG-sleutelring → (B, L, R)
Waarschuw als R komt niet overeen met de eerder geziene Remote ID
voor elk Hoi, Ki in L:
Download bestand Hi van de server → P'
Controleren Hekje(P') lucifers Hi
decoderen P' gebruik Ki → P open dan P met git
Manifesteren filet
Voorbeeld manifestbestand (met weglatingstekens voor beknoptheid):
$ 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
Elk item wordt verlengd tot een nieuwe regel en komt overeen met een van de volgende:
Git-object-ID en de ref
verpakken : :
Packfile-hash (Hi) en bijbehorende symmetrische sleutel (Ki).
houden : :
Packfile-hash en de generatie ervan opnieuw inpakken
repo
De externe id
extensie ...
Uitbreidingsveld, bewaard gebleven maar ongebruikt.
DETECTIE GCRYPT RUST
Om te detecteren of een git url een gcrypt repo is, gebruik je: git-remote-gcrypt --check url Exit status if
0 als de repo bestaat en kan worden gedecodeerd, 1 als de repo gcrypt gebruikt maar dat niet kan
gedecodeerd, en 100 als de repo niet is gecodeerd met gcrypt (of niet toegankelijk was).
Merk op dat dit de repo-inhoud moet ophalen in de lokale git-repository, hetzelfde als
wordt gedaan bij gebruik van een gcrypt-repo.
Gebruik git-remote-gcrypt online met onworks.net-services