Gitlab no funciona con claves SSH

Gitlab no funciona con claves SSH

Tengo problemas con Gitlab. Utilicé la siguiente guía para instalar y configurar Gitlab.https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md. La instalación pareció ir bien y todo. La aplicación web parece estar funcionando bien. Sin embargo, no puedo clonar, extraer, insertar, básicamente no puedo usar Gitlab. He visto errores 403 con HTTP y permiso denegado al intentar clonar a través de SSH.

Me he asegurado de que mis claves privadas estén configuradas correctamente tanto en Windows como en OS X. Puedo ver las claves públicas en el servidor. Agregué lo siguiente a mi archivo de configuración en ~/.ssh.config

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

Esto es lo que veo en /var/log/secure

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

No /var/log/messagefuncionó cuando intenté usar git o ssh

No estoy seguro de adónde ir desde aquí. ¿Alguna sugerencia?

No sé a qué te refieres con SSH usando el nombre de usuario de git. La guía que utilicé no creó una contraseña para el usuario de git e indicó que no se puede utilizar el usuario para iniciar sesión.

Respuesta1

Siempre que haya cargado su clave privada en su cliente, parece que esto podría ser un problema de permisos en el directorio de inicio del usuario 'git' y el directorio .ssh.

Intente cambiar su directorio /home/git a una máscara de 0711:

chmod 0711 /home/git

Asegúrese de que el directorio /home/git/.ssh tenga una máscara de 0700:

chmod 0700 /home/git/.ssh

Asegúrese de que el archivo /home/git/.ssh/authorized_keys tenga una máscara de 0600:

chmod 0600 /home/git/.ssh/authorized_keys

Reemplace /home/git con cualquiera que sea su directorio de inicio para el usuario 'git', si era diferente en el tutorial. Si no se trata de permisos, deje un comentario y veremos qué más podría ser el problema.

Respuesta2

Verifique que tenga solo un registro para su clave pública (que se importó a través de la página web) /home/git/.ssh/authorized_keysy que esta clave tenga el prefijo y el título de gitlab. En otras palabras, si agregó la misma clave manualmente antes de instalar gitlab, elimínela.

Respuesta3

También recomendaría verificar que el usuario tenga el permiso adecuado para clonar/extraer/insertar en gitlab. Simplemente pasé demasiado tiempo revisando las configuraciones de ssh/https, cuando el motivo del problema era que el usuario en gitlab no tenía suficientes permisos...

Respuesta4

Esto puede suceder si el host tiene un '-' en su nombre. (Aunque esto es legal segúnRFC 952.)

ssh me solicita una contraseña para cualquier host que tenga un '-' en su nombre. Esto parecería ser puramente un problema con el análisis del archivo de configuración ssh porque agregar un alias a ~/.ssh/config (y usar ese alias en mis URL remotas de git) resolvió el problema.

En otras palabras, intenta poner algo como lo siguiente en tu C:/Users/{username}/.ssh/config

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

y donde tienes un mando de la forma

origin  [email protected]:repo-name.git

elimínelo y luego vuelva a agregarlo usando el formulario

origin  git@a:repo-name.git

información relacionada