Cifrado Git transparente para secretos selectivos en repositorios
Cifrar archivos en Git de forma transparente: los archivos se cifran al hacer commit y se descifran al hacer checkout utilizando .gitattributes para marcar rutas protegidas. Andrew Ayer creó git-crypt para flujos de trabajo de desarrolladores y DevOps, integrando GPG o claves simétricas compartidas para acceso multiusuario. Los comportamientos clave incluyen filtrado automático durante los comandos estándar de Git, lógica de cifrado solo local y un modelo de alcance selectivo que se adapta a equipos que deben mantener algunos archivos del repositorio privados mientras dejan el código visible.
¿Qué hace realmente git-crypt durante las operaciones del repositorio?
git-crypt se integra en el mecanismo de filtro de Git para que los archivos marcados pasen por cifrado en el commit y descifrado en el checkout. Marcas los archivos con entradas de .gitattributes como secretfile filter=git-crypt diff=git-crypt, y la herramienta cifra solo esos archivos, dejando los mensajes de commit y los metadatos intactos. La CLI se ejecuta localmente y no requiere un daemon en segundo plano, por lo que los flujos de trabajo y comandos del repositorio como diff y merge funcionan para los usuarios autorizados.
¿Afecta el rendimiento del sistema o los flujos de trabajo durante el uso normal de Git?
El cifrado y descifrado ocurren como parte de las operaciones existentes de Git, por lo que el trabajo adicional se realiza en la máquina del desarrollador en el momento del commit y checkout en lugar de en un servidor remoto. Debido a que git-crypt realiza el procesamiento localmente y utiliza filtros estándar de Git, se integra con flujos de trabajo existentes y no introduce un servicio externo que contactar. Para archivos grandes protegidos, espera un uso adicional de CPU y E/S durante el paso de commit o checkout, ya que los archivos se transforman del lado del cliente.
¿Es seguro usar git-crypt en un entorno de equipo?
La herramienta admite acceso multiusuario basado en GPG y claves simétricas compartidas, permitiendo a los equipos utilizar identidades GPG existentes para otorgar acceso al repositorio sin compartir una sola contraseña. Opera de una manera que preserva los blobs cifrados para colaboradores no autorizados, por lo que aún pueden clonar y hacer commits de partes no protegidas. Es necesaria una configuración inicial cuidadosa: si se comiten archivos sensibles antes de que .gitattributes entre en efecto, esos commits pueden contener texto sin cifrar.
¿Necesitas conocimientos avanzados para operarlo correctamente?
git-crypt es una utilidad de línea de comandos que espera familiaridad con Git y conceptos básicos de GPG. La configuración requiere editar .gitattributes y, para el acceso a GPG, agregar identificaciones de usuario al llavero del repositorio. Para equipos cómodos con Git y GPG, la herramienta funciona como un filtro que se configura y se olvida; para colaboradores menos técnicos, la gestión inicial de claves y la configuración de atributos pueden presentar una curva de aprendizaje.
Adecuado para equipos de desarrolladores que aceptan un compromiso de configuración
git-crypt es adecuado para desarrolladores e ingenieros de DevOps que necesitan secreto selectivo a nivel de repositorio sin un almacén externo. Realiza la encriptación localmente e integra con comandos estándar de Git, pero requiere una configuración inicial cuidadosa y familiaridad con GPG para evitar compromisos accidentales en texto plano. Para equipos dispuestos a gestionar .gitattributes y claves, git-crypt proporciona un método práctico para mantener secretos dentro de un solo repositorio mientras se preservan los flujos de trabajo normales de control de versiones.





