Bloquear el servidor git ssh

Bloquear el servidor git ssh

Me gustaría configurar un servidor git a través de ssh, con una única cuenta SSH para el proyecto. Todos los miembros del proyecto deben tener sus claves ssh enumeradas en claves_autorizadas. Lockdown debería restringir el acceso para que solo haga cosas de git y solo dentro de un directorio dedicado.

¿Cuál es la mejor manera de crear una configuración de este tipo? Existe git-shell, que aparentemente puede bloquearlo para ejecutar solo comandos de git, pero no puedo encontrar cómo restringir el acceso a un solo directorio. También hay varios contenedores de Python y Ruby: ¿en cuál de ellos debo confiar?

Respuesta1

podrías echarle un vistazogitosisogitolita, gitolite es algo mejor con respecto a otorgar acceso y demás a los repositorios, no tendrías que preocuparte por dar acceso a los usuarios al servidor y demás.

Respuesta2

¿Cuál es su modelo de amenaza?

Un buen chico destruye accidentalmente el repositorio de git u otros datos:Asegúrese de que sus usuarios solo puedan escribir en su homedir, tmp y el repositorio de git. Haga una copia de seguridad del repositorio después de cada confirmación y practique los procedimientos de recuperación con regularidad.

El malo roba la clave privada de alguien y quiere ser dueño de su sistema:Su superficie de ataque está limitada a partes de sshd protegidas por autenticación y a cualquier interfaz de shell que utilice, así que hágala lo más pequeña posible. Los contenedores Python/Ruby implican mucho código y mucho espacio para errores. Utilice git-shell o considere usar las directivas Match y ChrootDirectory en sshd_config para limitar a qué partes del sistema de archivos pueden acceder los usuarios.

El malo roba la clave privada de alguien y obtiene su código fuente:Enseñe a los usuarios cómo proteger sus claves privadas y establezca procedimientos para revocar claves rápidamente (por ejemplo, a quién llamar a las 4 a. m. para revocar las claves).

No use .ssh/authorized_keys, en su lugar use la AuthorizedKeyfilepalabra clave en sshd_config para especificar una ruta donde los usuarios no tienen acceso de escritura, por ejemplo /etc/ssh/keys/%u. Es demasiado difícil asegurarse de que los usuarios nunca puedan sobrescribir .ssh/authorized_keys con su propia copia.

Además, mantenga controlados los archivos de claves del usuario y la versión sshd_config para permitir auditorías.

información relacionada