¿Cómo cifro git en mi servidor?

12

Aquí está lo más cerca que he llegado: instalé gitolite en la /Privatecarpeta usando ecryptfs-utils ( sudo apt-get install ecryptfs-utils adduser git ecryptfs-setup-privateluego el resto fue configurar gitolite usando una instalación raíz).

Funcionó bien siempre que alguien haya iniciado sesión como usuario gitutilizando una contraseña (el su gituso de root no funciona). Dado que la carpeta privada se activa al iniciar sesión con una contraseña y gitolite utiliza claves RSA (requeridas), la carpeta privada se oculta, por lo que se produce un error.

¿Hay alguna manera de que pueda iniciar sesión en mi servidor después de reiniciar, escribir la contraseña y tener la carpeta privada de usuario git disponible hasta la próxima vez que la máquina se reinicie?

¿O tal vez hay una manera fácil de cifrar una carpeta para repositorios git?

Estera
fuente
No estoy seguro de lo que quieres decir. Empujar y tirar sobre SSH ya está encriptado. ¿Necesita encriptación más allá de eso?
jonescb
Funciona su - git? Además, ¿cuál es el punto de cifrar el FS si desea tenerlo siempre disponible si la máquina está encendida? ¿Es estrictamente para proteger contra ataques fuera de línea?
Hank Gay
Cifrado del sistema de archivos @jonescb
@Hank Gay: Sí. ataques fuera de línea es todo lo que quiero asegurar con esto. Siempre debe estar disponible de manera razonable fuera de línea + asegurar al usuario que accede a los archivos cifrados + usar un buen software que acceda a dichos archivos es realmente todo lo que puedo hacer. -editar- y no su - gitlo resolvió desafortunadamente.
tal vez quieras cerrar el otro hilo: unix.stackexchange.com/questions/10355/…
D4RIO

Respuestas:

4

Simplemente necesita eliminar el archivo ~/.ecryptfs/auto-umount.

Este archivo es una marca que pam_ecryptfs comprueba al cerrar sesión. Este archivo existe de forma predeterminada en la configuración, junto con ~/.ecryptfs/auto-mount, de modo que su directorio privado se monta y desmonta automáticamente al iniciar / cerrar sesión. Pero cada uno se puede eliminar de forma independiente para cambiar ese comportamiento. ¡Disfrutar!

Dustin Kirkland
fuente
2

Podría utilizar un enfoque de filtro de manchas / limpieza de git; esto encriptará el contenido del repositorio y lo desencriptará para trabajar en el árbol de trabajo.

Ver https://gist.github.com/873637 .

Sin embargo, no cifrará los nombres de los archivos.

Peter Mounce
fuente
1

Lo sentimos, no puedo publicar como comentario ...

¿Quizás podrías montar tu ssh a través de sshfs y usar encfs dentro?

solarc
fuente
Git es bastante automático. No creo que pueda decirle a git que ejecute comandos a través de ssh antes / después de hacer sus cosas de git
Me refería a montar su directorio remoto como un directorio local con sshfs, luego montar una carpeta encriptada dentro de eso con encfs y luego usar su carpeta git dentro de eso. Git no necesita saber qué está pasando.
solarc
1

Uso screen. solo cree una pantalla, suméelo al usuario y haga lo que necesita hacer. Separarlo usando Ctrl + A, d. Entonces debería poder desconectarse sin matar el proceso, por lo tanto, alguien está conectado en todo momento.


fuente
0

Tal vez empaquetar su repositorio en un tar cifrado GPG. Es posible eliminar la clave privada de su hogar cada vez, por lo que su repositorio será casi descifrable. Cada vez que inicia sesión, escribe la clave privada en su hogar, descifra el repositorio y lo utiliza.

D4RIO
fuente
0

Si puede deshabilitar el módulo de sesión pam_ecryptfs, los puntos de montaje ecryptfs no se desmontarán al cerrar sesión, pero esto también afecta a todos. Otra idea es utilizar una frase de contraseña diferente de su inicio de sesión para ajustar su frase de fase de montaje. En este caso, no podrá montarlo automáticamente al iniciar sesión y, por lo tanto, no debería (¿no?) Desmontarse al cerrar sesión. Luego puede montar manualmente ecryptfs y debe permanecer montado hasta el próximo reinicio:

ecryptfs-umount-private
ecryptfs-rewrap-passphrase .ecryptfs/wrapped-passphrase
ecryptfs-mount-private
pingüino359
fuente
0

Si está buscando una protección estrictamente fuera de línea, entonces algo como una partición cifrada montada automáticamente debería ser suficiente. Veo que estás usando apt-get, por lo que es muy probable que estés en Ubuntu. En ese caso, puede interesarle saber que Ubuntu tiene el cifrado como una opción durante la instalación . Si está utilizando Debian, aquí hay un artículo que encontré que cubre cómo configurar un sistema de archivos cifrado en varios pasos sencillos .

Hank Gay
fuente