2011-09-23 15 views
6

Recientemente instalé Gitolite en un entorno Cygwin utilizando claves SSH y todo lo demás.Gitolite no está actualizando el archivo authorized_keys

Instalé con éxito Gitolite y tuve acceso al repositorio gitolite-admin, configuré y puse las nuevas claves. Cuando commit Ted y push ed, todo estaba bien hasta que me di cuenta de que no puedo acceder a los nuevos repositorios o gitolite-admin repositorio de nuevo ...

luego entré en mi servidor a través de SSH y se dio cuenta de que gitolite borra todo el público claves en authorized_keys a excepción de mi clave SSH predeterminada que configuré con SSH.

he comprobado si los ganchos están propagando y todo se ve bien - Gitolite creó los nuevos repositorios y compiló el nuevo gitolite.conf

No sé lo que me perdí - algo está mal, pero no tengo una idea lo que es.

Lo último que vi es que el archivo ~/.gitolite/src/sshkeys-lint administra los archivos pero no entiendo muy bien el lenguaje de comandos de shell.

+0

¿Parece que podrías tener un problema de permisos en tu archivo 'authorized_keys'? – Nic

+0

'authorizad_keys' tiene 600 permisos en usuario de git que está bien que puede leer porque puedo acceder a través de ssh si ejecuto' ~/.gitolite/src/gl-setup-authkeys --batch ~/.gitolite/keydir' .. .. el 'authorized_keys' se actualiza y todo está bien, el problema es que tengo que hacerlo y no se dispara automáticamente – Rafael

+0

@melee gracias por la verificación gramatical. Trataré de escribir mejor mis preguntas/respuestas – Rafael

Respuesta

6

Cuando confirma, ¿está obteniendo el siguiente error en la consola (de la máquina desde la que se compromete)?

remote: FIND: Parameter format not correct 
remote: FIND: Parameter format not correct 

En caso afirmativo, el problema es find.exe.

Windows tiene un find.exe en su carpeta \ windows \ system32 y cygwin tiene su propio find.exe. Por lo general, \ windows \ system32 aparece primero en la variable de entorno 'ruta'.

Gitolite utiliza 'find' en sus scripts, pero desafortunadamente se ejecuta find.exe desde windows en lugar de cywin.

Ahora, para solucionar el problema, vaya a la pestaña de variables de entorno y agregue el directorio bin de cygwin antes de system32.

Después de esto, no volverá a enfrentar el problema de que "el archivo authorized_keys se borre en una confirmación".

Tengo gitolite trabajando en la máquina de Windows Server 2008 con duplicación funcionando bien. (He configurado esto como un esclavo y el maestro es una máquina de centOs.) Más información, Como ha instalado sshd como un servicio de Windows, la ruta de cygwin recibiría una menor propiedad sobre la ruta de acceso de Windows.

+0

comprobaré que en la primera oportunidad que tengo – Rafael

+0

me encuentre con el mismo problema exacto ... Sin embargo, añadir cygwin a la ruta no me funciona. Es posible que esta solución requiera un reinicio? Otra cosa..¿No sería más inteligente agregar 'c: \ cygwin \ bin \ find.exe' a la ruta? De esa forma, no pondrás en peligro ninguna función del sistema. – NickSuperb

+0

¡Gracias, funcionó para mí! Gitolite no pudo actualizar el archivo authorized_keys, porque utilizó el find.exe incorrecto, cuando se lo llamó desde el servicio/deamon SSHD de Cygwin (pero ¿por qué ?! esto debería arreglarse) cuando se llama desde la línea de comandos de cygwin funcionaba perfectamente.) @Nick: Sí, parece que tienes que reiniciar, para que el servicio (¿o la cuenta de usuario del servicio?) Descubra que la RUTA ha cambiado ... (al menos tuve que hacerlo en XP) – Bjarke

Cuestiones relacionadas