Linux – Cómo configurar el server SFTP junto con el repository local de Git

Actualmente estoy configurando SFTP y el repository local de git en el mismo server. Habrá 2 types de grupos: sftp-users git-users . He restringido sftp-usres solo a sus directorys de home usando ChrootDirectory %h . Ahora, cuando sftp-users solo a sftp-users usan SFTP (para download / ver files), no permite a git-users iniciar session mediante putty o clonar proyectos en el lado del cliente.

Entonces, ¿cuál es la mejor manera de configurar ambos types de grupo en el mismo server, para que git-users no puedan ver los repositorys de código a través de clientes FTP? ¡Cualquier sugerencia será muy apreciada!

Diría que estás haciendo esto mal con respecto a Git.

En lugar de implementar inicios de session de sistema reales para acceso SSH (lo que usted llama "iniciar session a través de masilla"), se recomienda crear un único usuario "virtual" (normalmente llamado git ) y hacer que todos los usuarios de Git lo utilicen para iniciar session en el sistema. SSH – mientras que al mismo time tiene ciertos medios para distinguir diferentes usuarios basados ​​en sus keys SSH.

Tal distinción se implementa típicamente usando gitolite (por lo general, eso es sólo para apt install gitolite ).

La idea es que cada usuario distinto de Git tenga su propia key SSH, y ese usuario del sistema virtual git en el server tenga algo provisto por gitolite como su shell de inicio de session. Cada usuario de Git inicia session como git@server pero usa su propia key SSH para la authentication. Después de iniciar session con el usuario, el server SSH llama a gitolite y utiliza su propia asignación de keys de usuario a usuarios individuales, que son puramente virtuales en el sentido de que no tienen counts en el server.

Esto le permite desacoplar por completo el alojamiento de Git del alojamiento SFTP.

Otra posible solución es servir repositorys Git a través de HTTP en lugar de SSH. A continuación, puede utilizar cualquiera de los medios del server HTTP para autenticar a los usuarios, lo que, una vez más, permitiría desacoplar las bases de datos de los usuarios de Git y los usuarios de SFTP. (Pero podrían usar el mismo back-end de authentication, por ejemplo, PAM, si es necesario; vea esto como ejemplo).


Como un aparte, su pregunta es offtopic en SO ; utilice ServerFault para las preguntas como la suya (dedicada a problemas de configuration / administración de software).