Este es el comando git-remote-gcrypt que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
git-remote-gcrypt: control remoto git cifrado con GNU Privacy Guard
DESCRIPCIÓN
Los programas de ayuda remota son invocados por git para manejar el transporte de red. Este ayudante
manijas gcrypt :: URL que accederán a un repositorio remoto cifrado con GPG, utilizando nuestro
formato personalizado
Las ubicaciones admitidas son local, rsync: // y sftp: //, donde el repositorio se almacena como un
conjunto de archivos, o en su lugar cualquier donde gcrypt almacenará la misma representación en un
repositorio git, puenteado sobre transporte git arbitrario.
El objetivo es proporcionar almacenamiento y colaboración de git autenticados y confidenciales utilizando
servicios o hosts de archivos típicos que no son de confianza. POR FAVOR ayúdenos a evaluar qué tan bien cumplimos con este
objetivo de diseño!
NOTA:
Esta es una versión de desarrollo: el formato del repositorio PUEDE CAMBIAR.
Inicio rápido
· Instalar en pc git-remoto-gcrypt ejecutando el suministrado instalar.sh guión.
· Cree un control remoto encriptado presionándolo:
git remoto agregar cryptremote gcrypt :: rsync: //example.com: repo
git push cryptremote maestro
> gcrypt: Configuración de un nuevo repositorio
> gcrypt: El ID remoto es: id: 7VigUnLVYVtZx8oir34R
> [más líneas ...]
> Para gcrypt :: [...]
> * [nueva rama] maestro -> maestro
CONFIGURACIÓN
Las siguientes git-config(1) las variables son compatibles:
remoto. .gcrypt-participantes
gcrypt.participantes
Lista separada por espacios de identificadores de clave GPG. El control remoto está encriptado a estos
participantes y solo se aceptan las firmas de estos. gpg -k enumera todo el público
claves que conoces.
Si esta opción no está configurada, encriptamos a su clave predeterminada y aceptamos cualquier
firma. Este comportamiento también se puede solicitar explícitamente configurando participantes
a simples.
El participantes de gcrypt la configuración en el control remoto tiene prioridad sobre el repositorio
variable gcrypt.participantes.
remoto. .gcrypt-publicar-participantes
gcrypt.publish-participantes
De forma predeterminada, los identificadores de clave gpg de los participantes se ocultan mediante el cifrado mediante
gpg -R. Configurar esta opción para su verdadero desactiva esa medida de seguridad.
El problema de usar gpg -R es que para descifrar, gpg prueba cada secreto disponible
clave a su vez hasta que encuentre una clave utilizable. Esto puede resultar en una frase de contraseña innecesaria
indicaciones.
remoto. .gcrypt-signingkey
usuario.signingkey
(Este último de la configuración de git normal) La clave que se utilizará para firmar. Debería
para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. usuario.signingkey si su clave de firma predeterminada no es parte del participante
lista. Puede usar la versión por control remoto para firmar diferentes controles remotos usando diferentes
llaves.
MEDIO AMBIENTE VARIABLES
GCRYPT_FULL_REPACK
Esta variable de entorno fuerza el reempaquetado completo al presionar.
EJEMPLOS
Cómo configurar un control remoto para dos participantes:
git remoto agregar cryptremote gcrypt :: rsync: //example.com: repo
git config remote.cryptremote.gcrypt-participantes "KEY1 KEY2"
git push cryptremote maestro
Cómo usar un backend de git:
# observe que el repositorio de git de destino ya debe existir y su
# ¡Se sobrescribirá la rama `siguiente`!
git remoto agregar gitcrypt gcrypt ::[email protected]: repo # siguiente
maestro git push gitcrypt
El fragmento de URL (#siguiente aquí) indica qué rama de backend se utiliza.
NOTAS
Colaboración
El cifrado del manifiesto se actualiza para cada inserción para que coincida con el participante
configuración. Cada usuario push debe tener las claves públicas de todos los colaboradores y
configuración de participante correcta.
Dependencias
rsync y rizo para mandos a distancia sincronizar: y ftp: respectivamente. El ejecutable principal
requiere un shell compatible con POSIX que admita local.
GNU Aviso de Privacidad Guardia
Se admiten tanto GPG 1.4 como 2. Necesita una clave GPG personal. Configuración GPG
se aplica a las opciones de algoritmo para cifrado de clave pública, cifrado simétrico y
firma. Ver hombre gpg para obtener más información.
Remote ID
La ID remota no es secreta; solo asegura que dos repositorios firmados por el
mismo usuario se puede distinguir. Verá una advertencia si cambia la ID remota,
lo que solo debería suceder si el control remoto se volvió a crear.
Repositorio Formato
EncSign (X): Firmar y cifrar al titular de la clave GPG
Cifrar (K, X): Cifrar usando un algoritmo de clave simétrica
Hash (X): SHA-2/256
B: lista de sucursales
L: lista del hashHi) y clave (Ki) para cada archivo de paquete
R: ID remota
Para escribir el repositorio:
Almacene cada archivo de paquete P as Cifrar (Ki, P) → P' en nombre de archivo Hi
donde Ki es una nueva cadena aleatoria y Hash (P ') → Hi
Tienda EncSign (B || L || R) en el manifiesto
Para leer el repositorio:
Obtenga el manifiesto, descifre y verifique usando el llavero GPG → (B, L, R)
Advertir si R no coincide con el ID remoto visto anteriormente
para cada Hola, Ki in L:
Obtener el archivo Hi desde el servidor → P'
Verificar Hash (P ') cerillas Hi
Decrypt P' usando Ki → P luego abre P con git
Manifiesto presentar
Archivo de manifiesto de ejemplo (con puntos suspensivos para abreviar):
$ 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
Cada elemento se extiende hasta una nueva línea y coincide con uno de los siguientes:
ID de objeto de Git y su referencia
paquete(s) : :
Hash del archivo de paquete (Hi) y la clave simétrica correspondiente (Ki).
keep : :
Hash de archivo de paquete y su generación de reempaquetado
repo
La identificación remota
extensión ...
Campo de extensión, conservado pero sin usar.
DETECTOR GRIPTA DESCANSO
Para detectar si una URL de git es un repositorio de gcrypt, use: git-remote-gcrypt --check url Exit status if
0 si el repositorio existe y se puede descifrar, 1 si el repositorio usa gcrypt pero no se pudo
descifrado y 100 si el repositorio no está cifrado con gcrypt (o no se pudo acceder).
Tenga en cuenta que esto tiene que recuperar el contenido del repositorio en el repositorio local de git, al igual que
se realiza cuando se usa un repositorio de gcrypt.
Use git-remote-gcrypt en línea usando los servicios de onworks.net