Il s'agit de la commande git-remote-gcrypt qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
git-remote-gcrypt - télécommande git cryptée par GNU Privacy Guard
DESCRIPTION
Les programmes d'assistance à distance sont invoqués par git pour gérer le transport réseau. Cet assistant
poignées gcrypt :: URL qui accéderont à un référentiel distant crypté avec GPG, en utilisant notre
format personnalisé.
Les emplacements pris en charge sont locales, rsync:// ainsi que sftp: //, où le référentiel est stocké en tant que
ensemble de fichiers, ou à la place n'importe quel où gcrypt stockera la même représentation dans un
référentiel git, ponté sur le transport git arbitraire.
L'objectif est de fournir un stockage et une collaboration git confidentiels et authentifiés à l'aide de
hôtes de fichiers ou services non fiables typiques. S'IL VOUS PLAÎT nous aider à évaluer dans quelle mesure nous répondons à cette
objectif de conception!
REMARQUE:
Ceci est une version de développement -- Le format du référentiel PEUT CHANGER.
Démarrage rapide
· Installer git-remote-gcrypt en exécutant le fourni install.sh scripts.
· Créez une télécommande cryptée en appuyant dessus :
git distant ajoute cryptremote gcrypt::rsync://example.com:repo
git push maître cryptremote
> gcrypt : configuration d'un nouveau référentiel
> gcrypt : l'ID distant est :id:7VigUnLVYVtZx8oir34R
> [ plus de lignes .. ]
> Pour gcrypter ::[...]
> * [nouvelle branche] maître -> maître
CONFIGURATION
git-config(1) les variables sont prises en charge :
à distance. .gcrypt-participants
gcrypt.participants
Liste d'identifiants de clé GPG séparés par des espaces. La télécommande est cryptée sur ces
participants et seules les signatures de ceux-ci sont acceptées. gpg -k répertorie tous les publics
clés que vous connaissez.
Si cette option n'est pas définie, nous chiffrons avec votre clé par défaut et acceptons tout
Signature. Ce comportement peut également être demandé explicitement en définissant les participants
à simple.
La participants-gcrypt le réglage sur la télécommande a priorité sur le référentiel
variable gcrypt.participants.
à distance. .gcrypt-publish-participants
gcrypt.publish-participants
Par défaut, les identifiants de clé gpg des participants sont masqués en cryptant à l'aide
gpg -R. Définir cette option sur oui désactive cette mesure de sécurité.
Le problème de l'utilisation gpg -R est-ce que pour déchiffrer, gpg essaie chaque secret disponible
clé à son tour jusqu'à ce qu'il trouve une clé utilisable. Cela peut entraîner une phrase de passe inutile
instructions.
à distance. .gcrypt-signingkey
utilisateur.signingkey
(Ce dernier à partir de la configuration git standard) La clé à utiliser pour la signature. Vous devriez
set utilisateur.signingkey si votre clé de signature par défaut ne fait pas partie du participant
liste. Vous pouvez utiliser la version par télécommande pour signer différentes télécommandes en utilisant différentes
clés.
ENVIRONNEMENT VARIABLES
GCRYPT_FULL_REPACK
Cette variable d'environnement force le reconditionnement complet lors de la poussée.
EXEMPLES
Comment configurer une télécommande pour deux participants :
git distant ajoute cryptremote gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-participants "KEY1 KEY2"
git push maître cryptremote
Comment utiliser un backend git :
# notez que le référentiel git cible doit déjà exister et son
# La branche `next` sera écrasée !
git remote ajoute gitcrypt gcrypt ::[email protected]:repo#suivant
git push maître gitcrypt
Le fragment d'URL (#suivant ici) indique quelle branche principale est utilisée.
NOTES
Coopération
Le cryptage du manifeste est mis à jour pour chaque push pour correspondre au participant
configuration. Chaque utilisateur poussant doit disposer des clés publiques de tous les collaborateurs et
configuration correcte des participants.
Dépendances
rsync ainsi que boucle pour les télécommandes rsync : ainsi que sftp : respectivement. L'exécutable principal
nécessite un shell compatible POSIX qui prend en charge locales.
GNU Confidentialité Garde
Les GPG 1.4 et 2 sont pris en charge. Vous avez besoin d'une clé GPG personnelle. Configuration GPG
s'applique aux choix d'algorithmes pour le chiffrement à clé publique, le chiffrement symétrique et
signature. Voir man gpg pour plus d'information.
Remote ID
L'ID à distance n'est pas secret ; il garantit seulement que deux référentiels signés par le
le même utilisateur peut être distingué. Vous verrez un avertissement si l'ID à distance change,
ce qui ne devrait se produire que si la télécommande a été recréée.
Dépôt Format
EncSign(X) : Signer et chiffrer au détenteur de la clé GPG
Crypter (K, X) : Chiffrer à l'aide d'un algorithme à clé symétrique
Hachage(X) : SHA-2/256
B: liste des succursales
L: liste du hachage (Hi) et la clé (Ki) pour chaque packfile
R: ID distant
Pour écrire le référentiel :
Stocker chaque packfile P as Crypter (Ki, P) → P' dans le nom de fichier Hi
De Ki est une nouvelle chaîne aléatoire et Hachage(P') → Hi
Agence EncSigne(B || L || R) dans le manifeste
Pour lire le référentiel :
Obtenez le manifeste, déchiffrez et vérifiez à l'aide du porte-clés GPG → (B, L, R)
Avertir si R ne correspond pas à l'identifiant distant précédemment vu
pour chaque Bonjour, Ki in L:
Obtenir le fichier Hi depuis le serveur → P'
Vérifier Hachage(P') allumettes Hi
Décrypter P' en utilisant Ki → P ensuite ouvert P avec git
Manifeste filet
Exemple de fichier manifeste (avec des points de suspension par souci de concision) :
$ 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
dépôt :id:OYiSleGirtLubEVqJpFF
Chaque élément s'étend jusqu'à la nouvelle ligne et correspond à l'un des éléments suivants :
ID de l'objet Git et sa référence
un jeu : :
Hachage du fichier pack (Hi) et la clé symétrique correspondante (Ki).
garder : :
Hash Packfile et sa génération de repack
repo
L'identifiant distant
poste
Champ d'extension, conservé mais inutilisé.
DETECTION GCRYPTE REPOS
Pour détecter si une URL git est un référentiel gcrypt, utilisez : git-remote-gcrypt --check url Exit status if
0 si le référentiel existe et peut être déchiffré, 1 si le référentiel utilise gcrypt mais n'a pas pu être
déchiffré et 100 si le référentiel n'est pas chiffré avec gcrypt (ou n'est pas accessible).
Notez que cela doit récupérer le contenu du référentiel dans le référentiel git local, de la même manière que
est fait lors de l'utilisation d'un dépôt gcrypt.
Utilisez git-remote-gcrypt en ligne en utilisant les services onworks.net