2010-07-02 17 views
5

He buscado y buscado, durante lo que parecen horas, una solución a este problema y nada de lo que he intentado funciona. Permítanme preceder a todo esto diciendo que aunque he usado * nix antes, soy bastante novato, así que estoy seguro de haber perdido un paso en la configuración de Git en alguna parte.Git sigue pidiendo la contraseña

Configuré una caja Ubuntu en la red en el trabajo para alojar nuestro nuevo repositorio Git. La caja ejecuta Git, Gitosis y también ViewGit. Todo parece estar configurado correctamente, y puedo ver el repositorio que agregué dentro de ViewGit. El problema es cuando voy a clonar el repositorio a través de TortoiseGit en Windows. Cuando escribo la dirección de "[email protected]: /home/git/Plugins/.git/", automáticamente solicita la contraseña para el usuario "git" en el cuadro de Linux. Puedo cambiar esta dirección de "git @" a cualquier otro nombre de usuario en el sistema y también le pediré la contraseña a ese usuario. En cualquier caso, al ingresar la contraseña de ese usuario se continúa con la clonación del repositorio en el sistema local. También las ramificaciones, los puts y los pull también solicitarán una contraseña y, si se ingresa, todo funciona correctamente.

He creado el archivo pub de RSA en los cuadros de Windows que he probado (a través de git bash) y los he almacenado en la carpeta de gitosis del keydir, así como también agregué el archivo gitosis.conf de los usuarios (el nombre del archivo rsa menos el .pub). También modifiqué mi archivo sshd_config para incluir "AllowUsers git" y también mi nombre de usuario en el sistema. Estoy perdido, no parece una buena idea dar a todos los que quiero tener acceso a este repositorio la dirección IP del servidor, un nombre de usuario y luego la contraseña de ese nombre de usuario solo para que puedan descargar algún código. ¡Gracias por la ayuda!

Respuesta

0

Pasé por esta misma cosa exacta en mi caja hace aproximadamente 2 semanas :) Ya estás en el 90% del camino.

Para reparar TortoiseGit, desinstálelo y vuelva a instalarlo, pero esta vez elija usar Putty P-Link en lugar de OpenSSH. Luego, cuando vaya a presionar o arrastrar al proyecto, verifique la pequeña cosa "autoload putty key".

+0

Eso realmente empeora las cosas. Ahora solicita tanto un nombre de usuario como una contraseña, donde al menos descubrió el nombre de usuario por sí mismo :( – user64718

+0

Además, al escribir el nombre de usuario y la contraseña ya no puedo descargar el repositorio. – user64718

2

Tuve el mismo problema recientemente: podía clonar/enviar a mi repositorio administrado por gitosis de Cygwin, pero TortoiseGit seguía pidiendo la contraseña del usuario de git ([email protected]).

Finalmente pude hacerlo reinstalando TortoiseGit (seleccioné la opción Plink en el momento de la instalación), luego en la configuración de TortoiseGit vaya a Red> Cliente SSH y cambie el valor a su Cygwin ssh binary (es decir, C: \ cygwin \ bin \ ssh.exe).

Al cambiar esto, pude hacer todas las operaciones desde TortoiseGit, y me pidieron la contraseña de la clave SSH que definí en Cygwin.

Además, compruebe que su gitosis.conf contiene las claves públicas que son visibles a Cygwin, la eliminación de la extensión ".pub": si mi Cygwin instalar programas que estoy miUsuario @ myhost, la entrada asociada en gitosis .conf debería haber miUsuario @ myhost y el archivo con la clave pública debe estar en keydir/[email protected]

0

en primer lugar, la URL que utiliza para clonar un repositorio git podría ser git + ssh como en su ejemplo, http/https, u otras cosas. Tanto SSH como HTTP son muy comunes, y las personas a menudo usan SSH para usuarios autenticados que podrán enviar datos al repositorio, y HTTP para otros usuarios, que pueden clonar y extraer, pero normalmente no pueden presionar, o tienen límites donde ellos pueden presionar a. Si puede ver su repositorio en ViewGit, probablemente pueda obtener una url HTTP para su repositorio, que podría usar sin iniciar sesión para clonar o extraer.

Ahora, si desea continuar con SSH, hay dos cosas que hay que tener en cuenta:

Tienes que ser capaz de conectar con el servidor a través de SSH, sin introducir una contraseña. Si está utilizando SSH Cygwin, usted debe ser capaz de hacer

ssh [email protected] 

y conectarse a la máquina sin tener que escribir su contraseña. Si está utilizando PuTTY, debería poder abrir PuTTY, poner el nombre de host y que se le pida un nombre de usuario, pero luego conectarse sin una contraseña (o use la línea de comando de masilla correspondiente). Tenga en cuenta que cuando hace esto con éxito, puede suceder una de dos cosas. O bien obtienes un shell normal en esa máquina como el usuario git. O bien, verá un mensaje corto, algo así como "SSH está configurado correctamente para usar git". y la conexión se cerrará de inmediato.

Si no puede hacer esto, entonces necesita configurar su clave pública en el servidor de git y cargar su clave privada en la memoria de su caja de Windows. El primero probablemente se hace a través de gitosis. Para este último, usarás el concurso (si usas Putty) o ssh-add si usas cygwin ssh. Si es necesario, puede usar una clave sin una frase de contraseña al principio. Esto eliminará el paso donde tiene que cargar manualmente la clave e ingresar la frase de contraseña. Hasta que pueda conectarse de esta manera a través de SSH sin contraseña, no continúe con el próximo paso.

Lo segundo que debe hacer es configurar qué ssh usa su cliente de git y cómo. Si puede conectarse como se indicó anteriormente, pero su cliente de git no puede conectarse, o no puede conectarse sin clonar, entonces debe configurarlo.

La idea básica es decirle a TortoiseGit exactamente cuál es la línea de comando para ssh al servidor git. Es posible que deba verificar cosas como PATH y variables de entorno para asegurarse de que TortoiseGit pueda replicar exactamente cómo se conecta utilizando ssh. Esta respuesta https://stackoverflow.com/a/11249914/1737957 da la idea básica.

Cuestiones relacionadas