linux - Git Server Frustration(Gitosis, Gitolite, etc.)
(6)
Disculpe los matices frustrantes ya que he intentado configurar esto correctamente varias veces sin éxito (posiblemente y muy probablemente debido a mi ignorancia, pero también probablemente debido a la falta de documentación exhaustiva y concisa).
Estoy tratando de configurar un servidor git para poder compartir código entre un pequeño equipo de desarrolladores. Cada desarrollador puede conectarse desde múltiples PC clientes. Vengo de MS en el pasado, por lo que estoy un poco mimado con respecto al conjunto de herramientas de desarrollo, pero sería increíble si pudiera obtener algo similar a TFS.
Al intentar configurar gitosis (entiendo que esto está en desuso para la comunidad git según https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention ) o gitolite, parece que tan pronto como lo instale tengo que ser extremadamente cuidadoso porque parece que todo se está balanceando en los palillos de dientes.
Mi último intento de configurar un servidor git incluyó mover mi clave pública (benny.pub) de mi computadora portátil al servidor, configurar todo usando esa clave pública y bajar la configuración para configurar un repositorio y permisos. Luego me di cuenta de que quería desarrollarme en otra PC, así que creé una nueva clave ([email protected]) y la rebautiqué como benny.pub a [email protected], que obviamente arruinó las cosas. Aquí es donde sé que fui tonto al cambiar el nombre.
Mi pregunta después de una descripción prolongada es la siguiente: ¿cómo puedo configurar un servidor git autónomo y robusto con la capacidad de que varios desarrolladores se registren desde varias máquinas mientras mantengo la seguridad, etc.? Tiene que haber una técnica probada (gitolite describe quizás 4-5 formas diferentes ... también frustrante) para hacer esto, ya que estoy seguro de que no soy el único que intenta hacer exactamente lo mismo. Tal vez git no es adecuado para mi equipo?
¡Cualquier ayuda es muy apreciada!
Creo que el problema es que su cliente ssh (versión de Windows o Linux) no está encontrando el archivo clave. Tuve el mismo problema y lo resolví de esta manera:
- En mi cuaderno, generé el archivo de claves (rafael.nicoletti@mycorporation) en la carpeta ~ / .ssh (donde ~ es la carpeta de inicio. La versión de windows es% HOME% env)
Agregué una configuración de nombre de archivo en ~ / .ssh con el siguiente contenido:
IdentityFile ~/.ssh/rafael.nicoletti@corporation
En cada ubicación que quiero acceder a mis servidores git, solo copio esos archivos en mi carpeta% HOME%
También puedes poner algunas cosas como esta en el archivo de configuración:
IdentityFile /d/identity.key
IdentityFile /e/identity.key
IdentityFile /f/identity.key
IdentityFile /.../identity.key
Así que la configuración buscará claves en medios extraíbles.
Estoy usando Debian con cada desarrollador que tenga una cuenta en el servidor. Yo uso ssh con clave privada de inicio de sesión. Finalmente, un desarrollador tiene que usar una url como ssh: //[email protected]/git-repo/repo.git para realizar el pago o, en cualquier caso, interactuar con git en repo
Mantengo una configuración de gitosis en el trabajo, y cuando un desarrollador tiene varias claves ssh, todo lo que tengo que hacer es poner todas estas claves en el mismo archivo keydir/user.pub
.
Así que concatene todas sus claves en keydir/benny.pub
y debería estar listo.
Según mi experiencia, todo lo que necesita es un servidor SSH con una sola cuenta / inicio de sesión de git al que pueda conectarse utilizando una de sus claves públicas. Instale gitolite utilizando SSH (copie gitloite de su cliente al servidor y realice la configuración básica) y haga que sus desarrolladores le envíen sus claves públicas. Agregue estas claves al repositorio de gitolite-admin en su ~
y presione.
¿Por qué un desarrollador necesita más de un par de llaves en primer lugar, incluso si se utilizan varias máquinas? Tales casos no influirán en cómo SSH maneja la autenticación ni cómo maneja gitolite la autorización: siguen siendo claves SSH.
Si un desarrollador tiene que usar varios keypairs (uno para git, otro para algún otro servidor), permítales manejar la complejidad y aconsejarles que creen una entrada en
~/.ssh/config
para cada combinación de~/.ssh/config
/ server que utilicen.Si un desarrollador tiene un par de llaves diferente en cada máquina utilizada, los grupos de gitolite pueden combinar varias claves públicas:
@agross = agross-1 agross-2