Tortoisegit pidiendo contraseña

84

Acabo de empezar a trabajar en Git. Utilizo Windows 7 y he instalado msysgit (1.7.8) y Tortoisegit (1.7.6). El repositorio se crea en un servidor Linux al que se puede acceder a través de LAN. El problema al que me enfrento es que no puedo clonar el repositorio usando Tortoisegit, me pide una contraseña y no estoy seguro de qué contraseña me pide. Al mismo tiempo, pude clonar el repositorio usando Git Gui y hacer todas las operaciones. ¿Alguien puede ayudarme a comprender por qué Tortoisegit solicita una contraseña cuando Git Gui no lo hace? Intenté desinstalar Git y Tortoisegit y luego instalarlo de nuevo, pero no tuve éxito.

Error de Tortoisegit

pramodtech
fuente
su servidor git está usando una autenticación de clave pública?
Felix Yan
En el MISMO clon del repositorio, ¿qué está haciendo TortoiseGit y qué está haciendo la GUI de Git?
manojlds
2
Cuando haga clic con el botón derecho en Tortoise Git, haga clic en Configuración. En Git, hay un enlace -> Remoto, haz clic en él. Desde la lista remota, haga clic en origen. A la derecha verá URL. En lugar de su nombre de usuario en URL, escriba: nombre de usuario: <su contraseña>. Finalmente, cuando realice una operación git desde Tortoise Git, verá que nunca le pregunta por la contraseña.
kamaci
1
¿Está utilizando http URI en lugar de SSH? Ese era mi problema
CAD bloke
Para los "especiales" entre nosotros (incluido yo) recuerde eliminar el bit 'git clone' del frente del comando antes de pegarlo en la ventana URL de la ventana Tortoise Git Clone; de ​​lo contrario, obtendrá problemas similares
icc97

Respuestas:

131

Mi colega resolvió el problema. Pasos:

  1. Haga clic derecho -> TortoiseGit -> Configuración -> Red
  2. El cliente SSH apuntaba a C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. Cambio de ruta a C:\Program Files (x86)\Git\bin\ssh.exe

Ruta alternativa: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe

pramodtech
fuente
me funciona con la versión 1.8.3 de tortuga ... ¡¡este problema me volvió loco !! en windowsXP @ 32 bit tortoisegit solo funciona con c: \ programmi \ git \ bin \ ssh.exe en Windows7 @ 64 funciona bien con toirtoiseplink.exe (predeterminado)
Evilripper
En mi máquina con Windows 8, apuntar el cliente SSH al archivo msysGit ssh.exe funcionó cuando la consulta de contraseña no apareció en absoluto. Un problema diferente, pero definitivamente vale la pena probar esta solución para alguien que
tenga
1
Para mí, esto no ayudó (al menos cuando me conecté a GitHub, no probé otros repositorios).
Suma
2
Gracias, funcionó perfectamente. Aunque mis ssh.exementiras en mi directorio de usuarioC:\Users\...\AppData\Local\Programs\Git\usr\bin
ppasler
7
Como mencionó @ppasler, ssh.exe ahora se encuentra en C: \ Archivos de programa (x86) \ Git \ usr \ bin \ ssh.exe o en la ubicación que mencionó, según la instalación.
Vlad Schnakovszki
33

Si necesita usar un nombre de usuario / contraseña, existe una solución mucho más simple que la respuesta actual # 2:

Right-click --> Tortoise Git --> Settings --> Git --> Credential --> Choose "Wincred, all Windows users" --> Hit apply

La próxima vez que ingrese la contraseña para un repositorio, esa contraseña se guardará automáticamente.


Si está utilizando un repositorio que requiere claves SSH en lugar de nombre de usuario / contraseña (que parece que era el problema original de OP) , debe

  1. Abra la clave SSH en PuTTY gen (se instala junto con Tortoise Git)
  2. En PuTTY gen, guarde la clave como una clave PuTTY.
  3. En el repositorio, Right-click --> Tortoise Git --> Settings --> Git --> Remotes. Busque su control remoto (generalmente 'origen') y luego cargue la clave PuTTY desde el paso 2.
BlueRaja - Danny Pflughoeft
fuente
En mi caso, esto solo funciona cuando se usa un nombre de usuario. No funciona cuando ingresas la dirección de correo electrónico de los usuarios, así que tenlo en cuenta.
Razze
3
esta fue la respuesta más corta y clara, gracias.
Alphas Supremum
¡Siempre he estado buscando esta respuesta exacta!
NielW
23

Para hacerlo sin llaves ...

Haga clic derecho en su carpeta
Seleccione tortoiseGit-> configuración-> Git-> Remoto
Select origin (o lo que sea que haya etiquetado como su control remoto principal)

En URL use este formato.

Https: // NOMBRE DE USUARIO: CONTRASEÑA @ URL

Donde USERNAME es su nombre de usuario
: los dos puntos separan el nombre de usuario y la contraseña y deben estar allí
PASSWORD es su contraseña
@ separa las credenciales con su url
URL es la url que usaría para conectarse al recurso .git

Gracias a Kamaci

Hugh Fuve
fuente
3
Esta solución también funciona con key. Clona Https: // USERNAME @ URL y estás bien.
Orace
2
Sí, excepto que no hagas esto porque cuando haces una fusión, TortoiseGit tiende a poner la URL completa en el mensaje de confirmación.
mwardm
Esta es la solución perfecta. Pero, ¿hay alguna forma de ocultar la contraseña, ya que está en texto sin formato?
Amit Kumar
1
¿Qué pasa si la contraseña contiene el signo @?
Hammad Dar
Recurrí a usar esta respuesta porque tengo mingw64 y obtengo este registro: Omitir la línea de comandos '"C: \ Archivos de programa \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe"' ('C: \ Archivos de programa \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'no encontrado) Necesita una línea de comandos válida; Edite los recursos de cadena en consecuencia (3x) error: no se pudo ejecutar el script de solicitud (código de salida 1)
RW4
14

Guardar nombre de usuario y contraseña con TortoiseGit

Guardar sus datos de inicio de sesión en TortoiseGit es bastante fácil. Le ahorra tener que escribir su nombre de usuario y contraseña cada vez que tira o empuja.

  1. Cree un archivo llamado _netrc con el siguiente contenido:

    máquina github.com
    iniciar sesión su
    contraseña de inicio de sesión su contraseña

  2. Copie el archivo a C: \ Users \ (u otra ubicación; resulta que es donde lo puse)

  3. Vaya al símbolo del sistema, escriba setx home C: \ Users \

Nota: si está utilizando algo anterior a Windows 7, es posible que el comando setx no funcione para usted. Use set en su lugar y agregue la variable de entorno doméstico a Windows usando a través de la Configuración avanzada en Mi PC.

CRÉDITO A: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/

Anthony Keane
fuente
1
funciona muy bien, pero ¿hay alguna forma de cifrar la contraseña simple? Me sentí incómodo almacenando mi contraseña de github en un archivo de texto sin formato.
Dio Phung
@DioPhung Piensa en lo que acabas de decir. Si la contraseña está encriptada, ahora deberá recordar una (nueva) contraseña para usar la contraseña. Si no tiene que recordar la contraseña, entonces es tan bueno como no tener una contraseña (desde una perspectiva de amenaza local). O quieres comodidad o seguridad.
Camilo Martin
1
@DioPhung Si tiene miedo de los administradores locales, pueden instalar fácilmente un keylogger. Un administrador local puede hacer lo que quiera con sus datos y, como tal, cualquier seguridad contra ellos sería seguridad a través de la oscuridad (incluso las herramientas y trucos que usan los bancos no pueden protegerlo contra un administrador local informado y determinado, y esfuérzate mucho). Con respecto al hachís, ¿a qué te refieres? Un hash no es reversible. Y si encripta usando la contraseña misma, aún tendrá que escribirla cada vez ... Así que es lo mismo que no encriptarla en primer lugar.
Camilo Martin
1
El cifrado de @CamiloMartin no requiere contraseña; Hay muchas formas de autenticarse con un sistema que pueden ser más convenientes que una contraseña. La seguridad no es todo o nada.
Adam
1
Si bien esta solución es posible, es mejor guardar la contraseña en Windows PasswordVault . Esta capacidad ha estado disponible en TortoiseGit desde marzo de 2013 mediante la implementación de la API git-credential-store . Probablemente también sea más fácil: From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OKy ya está. Escribí una respuesta completa a esta pregunta para aquellos interesados.
Adam
5

Una forma de hacer esto es

  • generar un par de claves usando PuttyGen, (o importar a .ppk si ya tiene una clave)
  • cargar la clave privada a peagent
  • importar la clave pública a su servidor de gitosis (proporcione su clave pública a su administrador)
  • y luego use plink como cliente SSH

plink funciona de forma nativa con peagent para recuperar la clave cargada.

puede encontrar plink.exe junto con peagent y otros beneficios en la distribución de masilla estándar

para usarlo ve a:

Configuración de TortoiseGit -> Red -> Cliente SSH.

por defecto, esto contiene la ruta a TortoisePlink.exe, en lugar de dar la ruta a plink.exe

Alternativamente, puede usar ssh (.exe) en la distribución msys (git), pero luego no puede usar la clave privada en el formato .ppk / combinación de Peagent. Necesita exportar su clave al formato OpenSSH a través de PuttyGen o crear un par de claves usando ssh-keygen en su lugar.

mzzzzb
fuente
¿Qué quiere decir con "cliente SSH en lugar de TortoisePlink point to plink"? ¿Dónde se encuentra probablemente este programa SSH?
Mikaël Mayer
perdón por faltar puntuación, creo que esa es la fuente de confusión. He actualizado la respuesta
mzzzzb
No es necesario cambiar nada en la configuración. Simplemente proporcione la clave privada de Putty cuando clone un repositorio a través de SSH y listo. Recuerde ingresar el punto final SSH en la ventana de clonación y NO el https.
MoonStom
4

Para automatizar la autenticación, utilice:

  1. Claves SSH como ya han señalado otros, o
  2. el asistente de credenciales incorporado.

Obviamente, no guarde su contraseña en un archivo de texto a menos que el repositorio no sea importante.

TortoiseGit> 1.8.1 instala el asistente git-credential-winstore que proporciona la API local para acceder y almacenar su información de inicio de sesión en la tienda de credenciales de Windows local existente .

Puede ver las credenciales almacenadas yendo a Panel de control → Cuentas de usuario → Administrador de credenciales y seleccionando "Credenciales de Windows". Las entradas que comienzan con "git:" son de git-credential-winstore.

Puede configurar wincred por repositorio mediante:

(GUI)

  1. Navega hasta el repositorio en el Explorador de archivos.
  2. Haga clic contextual → TortoiseGit → Configuración → Git → Credencial
  3. Asistente de credenciales: wincred - solo este repositorio
  4. La próxima vez que se autentique con el repositorio, se almacenarán las credenciales.

(CLI, POSH)

  1. cmdkey /add:git:https://[email protected] /user:USERNAME /pass:PASSWORD
  2.  

    @"
    [credential]
            helper = wincred
    "@ | Out-File -FilePath $repoRoot\.git\config -Append
    

Puede enumerar todas las credenciales almacenadas para repositorios con una cmdkey /list:git:*
vez almacenadas, las contraseñas no se muestran mediante cmdkey ( http://ss64.com/nt/cmdkey.html )

Para enumerar todas las credenciales con contraseñas, debe utilizar la API de Windows . Para powershell, está CredMan :

. .\CredMan.ps1
.\CredMan.ps1 -ShoCred
Adán
fuente
4

Tuve el mismo problema. Mi entorno es Windows 10 con TortoiseGit 2.3.0.0 y git versión 2.11.0.windows.1

Lo siguiente resolvió mi problema:

  • Haga clic derecho -> TortoiseGit -> Configuración -> Red
  • Actualice el cliente SSH a C: \ Archivos de programa \ Git \ usr \ bin \ ssh.exe

ingrese la descripción de la imagen aquí

plata
fuente
3

La URL y el título de la ventana TortoisePlink indican que la tortuga está intentando utilizar ssh como protocolo de transporte. git admite más de un protocolo de transporte, incluido el acceso al sistema de archivos y el acceso ssh. En su pregunta, está describiendo que desea acceder a su repositorio remoto mediante el acceso al sistema de archivos. En ese caso, su URL remota debería tener un aspecto similar a file://server/path/to/repo. Vuelva a comprobar la URL de su repositorio remoto.

Dov Grobgeld
fuente
3

Qué hice para solucionar esto (Windows):

  1. Abra PuttyGen, importe mi clave ssh y conviértala en una clave de masilla, guarde las partes públicas y privadas en la carpeta .ssh (% userprofile% .ssh)
  2. Abra Putty y vaya a Conexión-> SSH-> Auth, luego configure su archivo de clave privada allí.
  3. Regrese a Sesión, seleccione Configuración predeterminada y presione Guardar.
  4. Ahora intente clonar nuevamente y se le pedirá la frase de contraseña en su clave ssh, ingrésela y debería funcionar.
Razze
fuente
2

La respuesta de Pramodtech dejó de funcionar para mí con la versión actual del cliente oficial de Windows Git. Almacena el ejecutable ssh en Git\usr\binlugar de Git\binahora (desde la versión 2.5 lanzada en agosto de 2015).

Así que ve a TortoiseGit > Settings > Network y cambie la ruta del cliente SSH a:

C:\Program Files\Git\usr\bin\ssh.exe (o cualquiera que sea la ruta a su instalación de Git)

ingrese la descripción de la imagen aquí

DerVO
fuente
1

Dado que ninguna de las soluciones proporcionadas aquí funcionó para mí, y después de muchas decepciones con las soluciones que encontré en línea, finalmente logré arreglar esto en mi máquina.

No sé cuándo ni cómo configuré mi masilla TortoiseGit para usar siempre una clave específica y, por supuesto, esto creó todos los problemas cuando intenté conectarme a un servidor diferente con un nuevo par de claves.

Entonces, cómo solucionar un problema y cómo saber si realmente tiene el mismo problema que yo:

  1. Descargue plink.exeen su máquina desde aquí
  2. Abra el símbolo del sistema de Windows en el mismo directorio donde descargó su plink.exe
  3. Ejecute este comando: plink -v <path_to_your_git_clone_repo_link>
  4. Mire la salida y vea si tiene una línea como Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. Si ve una línea como esta, y no es el archivo de clave de masilla que desea usar, simplemente vaya y cambie el nombre / elimine / mueva ese archivo para que Plink no pueda cargarlo la próxima vez
  6. Después de cambiar el nombre del archivo problemático, todo debería funcionar como se esperaba, si ejecuta el comando desde el punto 3., debería ver que plink ahora no puede cargar ese ppkarchivo y luego debería generar algo como Pageant is running. Requesting keys.y realmente queríamos esto

Eso es todo, si alguien sabe cómo puedo deshabilitar esta "clave de masilla predeterminada global", hágamelo saber en los comentarios y actualizaré esta respuesta con la información.

sbgoran
fuente
1

No la URL del origen remoto del repositorio puede causar este problema. Tenía un repositorio antiguo que funcionaba perfectamente y uno nuevo que acababa de clonar y que me pedía una contraseña.

Al comparar la información en Settings > Git > Remote > Urlvi que el que funcionó tenía:

[email protected]:githubAccount/repoName.git

El nuevo que no funcionó tenía una httpsdirección.

Vea también la captura de pantalla a continuación.

ingrese la descripción de la imagen aquí

Prime óptimo
fuente
1

La línea de comandos de Tortoise GIT DOS dejó de pedir mi contraseña una vez que coloqué mis claves públicas y privadas en C: \ Users \ .ssh dir. Estoy en Windows 7.

SunilJ
fuente
1

Tuvo el mismo problema. En mi caso, no había contraseña que pudiera ingresar allí. La conexión se configuró como SSH pero no se definieron claves para el repositorio.

Consulte: Configuración SSH de TortoiseGIT . Esas instrucciones son para Cloudforge, pero para otros servicios debe hacer lo mismo, simplemente proporcione su clave pública a su proveedor de repositorio de git.

Krzysiek
fuente