2012-06-06 12 views
6

He creado con éxito gitolite-admin.git repo en el servidor (digamos) 10.107.105.13. Puedo clonar este repositorio en mi máquina local (digamos) 10.14.42.7 al emitir git clone [email protected]:gitolite-admin. Tuve que agregar algunas líneas en el archivo .ssh/config para asegurarme de que se usa la clave privada correcta.usuarios se les pide una contraseña al utilizar gitolite

Luego he agregado un usuario dilawar a conf/gitolite.conf archivo y una clave apropiada dilawar.pub a la carpeta keys. He agregado y comprometido este compromiso al repositorio gitolite-admin. También he agregado una entrada más en el archivo .ssh/conf para que se use una clave privada correcta. Pero cuando intento hacer git clone [email protected]:testing, gitolite pregunta por la contraseña. Tengo la impresión de que no tengo que crear el usuario dilawar en 10.107.105.13. He comprobado iniciando sesión en el servidor que existe el repositorio testing.git y la clave pública dilawar.pub se ha agregado al .ssh/authorized_keys.

También he intentado ssh -vvvv [email protected] para verificar si se está ofreciendo el archivo correcto. Aquí está mi archivo .ssh/conf.

HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/gitolite 

Host 10.107.105.13 
    HostName 10.107.105.13 
    User dilawar 
    IdentityFile ~/.ssh/id_rsa 

¿Qué estoy haciendo mal?

Respuesta

8

En su archivo de configuración, veo:

User dilawar 

Eso está mal. La comunicación ssh a un servidor gitolite siempre se realiza con la misma cuenta (aquí gitolite).
Lo que cambia es la clave privada utilizada, lo que ayudará a gitolite a determinar su identidad.

Lo que ~/.ssh/config archivo debe ser similar es:

Host admin 
    HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/gitolite 

Host dilawar 
    HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/id_rsa 

Para la clonación gitolite-admin, se debería utilizar:

git clone admin:gitolite-admin 

Para la clonación de un acuerdo de recompra dilawar tiene acceso a:

git clone dilawar:aRepo 

Ver más en "Gitolite: adding user not working, and DENIED by fallthru when cloning as root?".
Véase también "how gitolite uses ssh"

Adición de su clave pública al archivo del servidor ~git/.ssh/authorized_keys es como ssh utiliza pubkeys para autenticar usuarios.
Digamos que [email protected] está intentando iniciar sesión como [email protected].
Lo que tienes que hacer es tomar el archivo ~sita/.ssh/id_rsa.pub para el usuario sita en la estación de trabajo y añadir su contenido (recuerda que es sólo una línea) a ~git/.ssh/authorized_keyspara el usuario git en el servidor.

El archivo authorized_keys puede tener varias claves públicas (de muchas personas diferentes) agregadas para que cualquiera de ellas pueda iniciar sesión en [email protected].

3

Lo tengo trabajando clonando el repositorio usando el nombre de usuario gitolite.

git clone [email protected]:repo 

Si se añaden las teclas con éxito, el arrastre y el empuje se realizarán sin problemas.

Estoy aceptando la respuesta VomC como una mejor respuesta.

+0

No vi tu respuesta en ese momento. +1 para los comentarios. He mejorado el formato en mi respuesta. – VonC

0

Tuve que editar /etc/ssh/sshd_config y agregar git (el usuario) a la línea que comienza con AllowUsers. Luego tuve que agregar git a un grupo sysadmin que también estaba permitido en la línea sshd_config que comienza con AllowGroups.

No olvide reiniciar el daemon ssh con sudo service ssh restart.

Nota: Yo no tenía que ssh-copy-id o añadir la clave pública a /home/git/.ssh/authorized_keys como se sugirió antes

0

que tenían el mismo problema, con una solución diferente a causa de mi config (desarrollador de gitolite recomienda en contra de este por cierto.) . Configuré mi usuario gitolite como "git", así que necesitaba du git clone [email protected]:repo.git

Cuestiones relacionadas