Questo è il comando git-remote-gcrypt che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
git-remote-gcrypt - git remote crittografato da GNU Privacy Guard
DESCRIZIONE
I programmi di supporto remoto vengono invocati da git per gestire il trasporto di rete. questo aiutante
Maniglie crittografia:: URL che accederanno a un repository remoto crittografato con GPG, utilizzando il nostro
formato personalizzato.
Le posizioni supportate sono locale, rsync:// ed sftp: //, dove il repository è archiviato come a
set di file, o invece qualsiasi dove gcrypt memorizzerà la stessa rappresentazione in a
git repository, collegato al trasporto git arbitrario.
L'obiettivo è fornire archiviazione e collaborazione git riservate e autenticate utilizzando
tipici host o servizi di file non attendibili. PER FAVORE, aiutaci a valutare quanto bene lo affrontiamo
obiettivo progettuale!
NOTA:
Questa è una versione di sviluppo -- Il formato del repository POTREBBE CAMBIARE.
Avvio rapido
· Installa git-remote-gcrypt eseguendo il in dotazione install.sh script.
· Crea un telecomando crittografato premendo su di esso:
git remote aggiungi cryptremote gcrypt::rsync://example.com:repo
git push cryptremote master
> gcrypt: configurazione di un nuovo repository
> gcrypt: l'ID remoto è :id:7VigUnLVYVtZx8oir34R
> [ più righe .. ]
> Per gcrypt::[...]
> * [nuovo ramo] master -> master
CONFIGURAZIONE
Le seguenti git-config(1) le variabili sono supportate:
a distanza. .gcrypt-partecipanti
gcrypt.partecipanti
Elenco separato da spazi di identificatori di chiavi GPG. Il telecomando è crittografato con questi
partecipanti e solo le firme di questi sono accettate. gpg -k elenca tutti pubblici
chiavi che conosci.
Se questa opzione non è impostata, criptiamo la tua chiave predefinita e accettiamo qualsiasi chiave valida
firma. Questo comportamento può essere richiesto anche esplicitamente impostando i partecipanti
a semplice.
I gcrypt-partecipanti l'impostazione sul telecomando ha la precedenza sul repository
variabile gcrypt.partecipanti.
a distanza. .gcrypt-publish-partecipanti
gcrypt.publish-partecipanti
Per impostazione predefinita, gli ID delle chiavi gpg dei partecipanti sono oscurati dalla crittografia utilizzando
gpg -R. Impostando questa opzione su vero disabilita quella misura di sicurezza.
Il problema con l'utilizzo di gpg -R è che per decifrare, gpg prova ogni segreto disponibile
chiave a turno finché non trova una chiave utilizzabile. Ciò può comportare una passphrase non necessaria
prompt.
a distanza. .gcrypt-signingkey
user.signingkey
(Quest'ultimo dalla normale configurazione di git) La chiave da usare per la firma. Dovresti
set user.signingkey se la tua chiave di firma predefinita non fa parte del partecipante
elenco. È possibile utilizzare la versione per telecomando per firmare diversi telecomandi utilizzando diversi
chiavi.
AMBIENTE VARIABILI
GCRYPT_FULL_REPACK
Questa variabile d'ambiente forza il repack completo durante la spinta.
ESEMPI
Come configurare un telecomando per due partecipanti:
git remote aggiungi cryptremote gcrypt::rsync://example.com:repo
git config remote.cryptremote.gcrypt-participants "KEY1 KEY2"
git push cryptremote master
Come usare un backend git:
# notate che il repository git di destinazione deve già esistere e il suo
# Il ramo `prossimo` verrà sovrascritto!
git remote aggiungi gitcrypt gcrypt ::[email protected]:repo#successivo
git push master gitcrypt
Il frammento di URL (#next qui) indica quale ramo di backend viene utilizzato.
NOTE
Collaborazione
La crittografia del manifest viene aggiornata per ogni push in modo che corrisponda al partecipante
configurazione. Ogni utente push deve avere le chiavi pubbliche di tutti i collaboratori e
corretta configurazione del partecipante.
dipendenze
rsync ed arricciare per telecomandi sincronizzazione: ed SFTP: rispettivamente. L'eseguibile principale
richiede una shell conforme a POSIX che supporti locale.
GNU Privacy Guardia
Sono supportati sia GPG 1.4 che 2. Hai bisogno di una chiave GPG personale. Configurazione GPG
si applica alle scelte degli algoritmi per la crittografia a chiave pubblica, la crittografia simmetrica e
firma. Vedere uomo gpg per maggiori informazioni.
Assistenza ID
L'ID remoto non è segreto; assicura solo che due repository firmati dal
si può distinguere lo stesso utente. Verrà visualizzato un avviso se l'ID remoto cambia,
cosa che dovrebbe accadere solo se il telecomando è stato ricreato.
Repository Formato
Segno di codifica(X): Firma e crittografa al titolare della chiave GPG
Cifra (K,X): Crittografa utilizzando un algoritmo a chiave simmetrica
cancelletto(X): SHA-2/256
B: elenco delle filiali
L: elenco dell'hash (Hi) e chiave (Ki) per ogni pacchetto
R: ID remoto
Per scrivere il repository:
Memorizza ogni pacchetto P as Cifra (Ki, P) → P' nel nome del file Hi
where Ki è una nuova stringa casuale e hash (P') → Hi
Negozio EncSign(B || L || R) nel manifesto
Per leggere l'archivio:
Ottieni manifest, decrittografa e verifica utilizzando il portachiavi GPG → (B, L, R)
Avvisa se R non corrisponde all'ID remoto visto in precedenza
per ciascuno Ciao, Ki in L:
Prendi il file Hi dal server → P'
verificare hash (P') fiammiferi Hi
decrypt P' utilizzando Ki → P quindi apri P con git
Manifesto filetto
File manifest di esempio (con i puntini di sospensione per brevità):
$ 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
repository :id:OYiSleGirtLubEVqJpFF
Ogni elemento si estende fino a nuova riga e corrisponde a uno dei seguenti:
ID oggetto Git e il suo riferimento
pacchetti : :
Hash del file di pacchetto (Hi) e relativa chiave simmetrica (Ki).
mantenere : :
Hash Packfile e la sua generazione di repack
pronti contro termine
L'identità remota
interno ...
Campo di estensione, conservato ma inutilizzato.
RILEVAMENTO CRIPT RIPOSO
Per rilevare se un git url è un repository gcrypt, usa: git-remote-gcrypt --check url Exit status if
0 se il repository esiste e può essere decifrato, 1 se il repository utilizza gcrypt ma non può essere
decrittografato e 100 se il repository non è crittografato con gcrypt (o non è possibile accedervi).
Nota che questo deve recuperare i contenuti del repository nel repository git locale, lo stesso di
viene eseguito quando si utilizza un repository gcrypt.
Usa git-remote-gcrypt online usando i servizi onworks.net