Tortoisegit chiede la password


85

Ho appena iniziato a lavorare su Git. Uso Windows 7 e ho installato msysgit (1.7.8) e Tortoisegit (1.7.6). Il repository viene creato su un server Linux accessibile tramite LAN. Il problema che sto affrontando è che non sono in grado di clonare il repository usando Tortoisegit, chiede la password e non sono sicuro di quale password stia chiedendo. Allo stesso tempo potrei clonare il repository usando Git Gui e fare tutte le operazioni. Qualcuno può aiutarmi a capire perché Tortoisegit chiede la password quando Git Gui non lo fa. Ho provato a disinstallare Git e Tortoisegit e poi a installarlo di nuovo ma senza successo.

Errore di tartaruga


il tuo server git utilizza un'autenticazione pubkey?
Felix Yan

Nello STESSO clone del repository, cosa fa TortoiseGit e cosa fa Git GUI?
manojlds

2
Quando fai clic con il pulsante destro del mouse su Tortoise Git, fai clic su Impostazioni. In Git, c'è un collegamento -> Remoto, fai clic su di esso. Dall'elenco remoto fare clic su origine. A destra vedrai l'URL. Invece del tuo nome utente sull'URL, scrivi questo: nomeutente: <la tua password>. Infine, quando esegui un'operazione git da Tortoise Git, vedrai che non ti chiede mai la password.
kamaci

1
Stai usando l'URI http invece di SSH? Questo era il mio problema
CAD, il

Per gli "speciali" tra di noi (me compreso) ricordati di rimuovere il bit 'git clone' dalla parte anteriore del comando prima di incollarlo nella finestra URL della finestra Tortoise Git Clone - altrimenti ottieni problemi simili
icc97

Risposte:


134

Il mio collega ha risolto il problema. Passaggi:

  1. Fare clic con il tasto destro -> TortoiseGit -> Impostazioni -> Rete
  2. Il client SSH stava puntando C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. Percorso modificato in C:\Program Files (x86)\Git\bin\ssh.exe

Percorso alternativo: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe


per me funziona con la versione tartaruga 1.8.3 ... questo problema mi ha fatto impazzire !! su windowsXP @ 32 bit tortoisegit funziona solo con c: \ programmi \ git \ bin \ ssh.exe su Windows7 @ 64 funziona bene con toirtoiseplink.exe (default)
Evilripper

Sulla mia macchina Windows 8, il puntamento del client SSH al file msysGit ssh.exe ha funzionato quando la query della password non veniva visualizzata affatto. Un problema diverso, ma vale sicuramente la pena provare questa soluzione per qualcuno che ha problemi con SSH con TortoiseGit
Icermann

1
Per me questo non ha aiutato (almeno durante la connessione a GitHub, non ho provato altri repository).
Suma

3
Grazie, ha funzionato perfettamente. Anche se le mie ssh.exebugie nella mia directory utenteC:\Users\...\AppData\Local\Programs\Git\usr\bin
ppasler

7
Come menzionato da @ppasler, ssh.exe si trova ora in C: \ Programmi (x86) \ Git \ usr \ bin \ ssh.exe o nella posizione che ha menzionato, a seconda dell'installazione.
Vlad Schnakovszki

35

Se è necessario utilizzare un nome utente / password, esiste una soluzione molto più semplice dell'attuale risposta n. 2:

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

La prossima volta che inserisci la password per un repository, quella password verrà salvata automaticamente.


Se stai utilizzando un repository che richiede chiavi SSH anziché nome utente / password (che sembra fosse il problema originale di OP) , devi

  1. Apri la chiave SSH in PuTTY gen (si installa insieme a Tortoise Git)
  2. In PuTTY gen, salva la chiave come chiave PuTTY.
  3. Nel repository, Right-click --> Tortoise Git --> Settings --> Git --> Remotes. Trova il tuo telecomando (di solito 'origine') quindi carica la chiave PuTTY dal passaggio 2.

Nel mio caso funziona solo quando si utilizza un nome utente. Non funziona quando inserisci l'indirizzo email degli utenti, quindi tienilo a mente.
Razze

3
questa è stata la risposta più breve e chiara, grazie.
Alphas Supremum

Ho sempre cercato questa risposta esatta!
NielW

23

Per farlo senza chiavi ...


Fai clic con il tasto destro sulla cartella Seleziona tortoiseGit-> impostazioni-> Git-> Remote
Seleziona origine (o qualunque cosa tu abbia etichettato come telecomando principale)

Sotto URL usa questo formato.

Https: // USERNAME: PASSWORD @ URL

Dove USERNAME è il tuo nome utente
: i due punti separano nome utente e password e devono essere presenti
PASSWORD è la tua password
@ separa le credenziali con il tuo URL
URL è l'URL che

useresti per connetterti alla risorsa .git Grazie va a Kamaci


3
Questa soluzione funziona anche con la chiave. Clona Https: // USERNAME @ URL e sei a posto.
Orace

2
Sì, tranne che non farlo perché quando fai un'unione TortoiseGit è incline a mettere l' intero URL nel messaggio di commit!
mwardm

Questa è la soluzione perfetta. Ma c'è un modo per nascondere la password, dal momento che è in testo normale.
Amit Kumar

1
Cosa succede se la password contiene il segno @?
Hammad Dar

Ho fatto ricorso a questa risposta perché ho mingw64 e ottengo questo registro: Salto dalla riga di comando "C: \ Programmi \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe" "('C: \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'non trovato) Serve una riga di comando valida; Modifica le risorse della stringa di conseguenza (3x) errore: impossibile eseguire lo script del prompt (codice di uscita 1)
RW4

14

Salvataggio di nome utente e password con TortoiseGit

Salvare i tuoi dati di accesso in TortoiseGit è abbastanza semplice. Evita di dover digitare il nome utente e la password ogni volta che fai un pull o push.

  1. Crea un file chiamato _netrc con i seguenti contenuti:

    macchina github.com
    accedi la tua
    password di accesso la tua password

  2. Copia il file in C: \ Users \ (o in un'altra posizione; questo sembra essere dove l'ho messo)

  3. Vai al prompt dei comandi, digita setx home C: \ Users \

Nota: se stai usando qualcosa di precedente a Windows 7, il comando setx potrebbe non funzionare per te. Usa invece set e aggiungi la variabile di ambiente domestico a Windows utilizzando le Impostazioni avanzate in Risorse del computer.

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


1
funziona semplicemente bene, ma c'è un modo per crittografare la semplice password? Mi sono sentito a disagio nel memorizzare la mia password GitHub in un file di testo normale.
Dio Phung

@DioPhung Pensa a quello che hai appena detto. Se la password è crittografata, ora è necessario ricordare una (nuova) password per utilizzare la password. Se non devi ricordare la password, allora è come non avere una password (dal punto di vista delle minacce locali). O vuoi comodità o sicurezza.
Camilo Martin

1
@DioPhung Se hai paura degli amministratori locali, possono facilmente installare un keylogger. Un amministratore locale può fare tutto ciò che vuole con i tuoi dati e, in quanto tale, qualsiasi sicurezza contro di loro sarebbe sicurezza attraverso l'oscurità (anche gli strumenti e i trucchi che le banche usano non possono proteggerti contro un amministratore locale esperto e determinato, e loro sforzati). Per quanto riguarda l'hash, cosa intendi? Un hash non è reversibile. E se si crittografa utilizzando la password stessa, sarà comunque necessario digitarla ogni volta ... Quindi è lo stesso che non crittografarla in primo luogo.
Camilo Martin

1
La crittografia @CamiloMartin non richiede una password; ci sono molti modi per autenticarsi con un sistema che possono essere più convenienti di una password. La sicurezza non è tutto o niente.
adam

1
Sebbene questa soluzione sia possibile, è consigliabile archiviare la password in Windows PasswordVault . Questa capacità è disponibile in TortoiseGit da marzo 2013 implementando l'API git-credential-store . Probabilmente è anche più facile: From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OKe hai finito. Ho scritto una risposta completa a questa domanda per chi fosse interessato.
adam

5

Un modo per farlo è

  • generare una coppia di chiavi usando PuttyGen, (o importare in .ppk se hai già una chiave)
  • caricare la chiave privata su peagent
  • importa la chiave pubblica sul tuo server gitosis (fornisci la tua chiave pubblica al tuo amministratore)
  • e poi usa plink come client SSH

plink funziona in modo nativo con peagent per recuperare la chiave caricata.

puoi trovare plink.exe insieme a peagent e altri gadget nella distribuzione standard di stucco

per usarlo vai su:

Impostazioni TortoiseGit -> Rete -> client SSH.

per impostazione predefinita, questo contiene il percorso a TortoisePlink.exe, invece di fornire il percorso a plink.exe

In alternativa è possibile utilizzare ssh (.exe) nella distribuzione msys (git) ma non è possibile utilizzare la chiave privata in formato .ppk / combinazione Peagent. È necessario esportare la chiave in formato OpenSSH tramite PuttyGen o creare una coppia di chiavi utilizzando invece ssh-keygen.


Cosa intendi con "client SSH invece di TortoisePlink point to plink"? Dove si trova probabilmente questo programma SSH?
Mikaël Mayer

scusa per la punteggiatura mancante, penso che sia fonte di confusione. Ho aggiornato la risposta
mzzzzb

Non è necessario modificare nulla nelle impostazioni. Fornisci semplicemente la chiave Putty privata quando cloni un repository tramite SSH e il gioco è fatto. Ricorda di inserire l'endpoint SSH nella finestra clone e NON quello https.
MoonStom

4

Per automatizzare l'autenticazione utilizzare:

  1. Chiavi SSH come altri hanno già sottolineato, o
  2. l'helper di credenziali integrato.

Ovviamente, non memorizzare la password in un file di testo a meno che il repository non sia importante.

TortoiseGit> 1.8.1 installa l'helper git-credential-winstore che fornisce l'API locale per accedere e archiviare le informazioni di accesso nell'archivio credenziali di Windows locale esistente .

Puoi vedere le credenziali archiviate andando su Pannello di controllo → Account utente → Gestore credenziali e scegliendo "Credenziali Windows". Le voci che iniziano con "git:" provengono da git-credential-winstore.

Puoi impostare wincred per repository:

(GUI)

  1. Accedi al repository in Esplora file.
  2. Fare clic con il pulsante destro del mouse → TortoiseGit → Impostazioni → Git → Credenziali
  3. Credential helper: wincred - solo questo repository
  4. Alla successiva autenticazione con il repository, le credenziali verranno archiviate.

(CLI, POSH)

  1. cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
  2.  

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

È possibile elencare tutte le credenziali archiviate per i repository con cmdkey /list:git:*
Una volta archiviate, le password non vengono visualizzate da cmdkey ( http://ss64.com/nt/cmdkey.html )

Per elencare tutte le credenziali con password è necessario utilizzare l' API di Windows . Per PowerShell, c'è CredMan :

. .\CredMan.ps1
.\CredMan.ps1 -ShoCred

4

Ho avuto lo stesso problema. Il mio ambiente è Windows 10 con TortoiseGit 2.3.0.0 e git versione 2.11.0.windows.1

Quanto segue ha risolto il mio problema:

  • Fare clic con il tasto destro -> TortoiseGit -> Impostazioni -> Rete
  • Aggiorna il client SSH a C: \ Program Files \ Git \ usr \ bin \ ssh.exe

inserisci qui la descrizione dell'immagine


3

L'URL e il titolo della finestra TortoisePlink indicano entrambi che la tartaruga sta tentando di utilizzare ssh come protocollo di trasporto. git supporta più di un protocollo di trasporto, incluso l'accesso al file system e l'accesso ssh. Nella tua domanda, stai descrivendo che desideri accedere al tuo repository remoto tramite l'accesso al file system. In tal caso, l'URL remoto dovrebbe essere simile a file://server/path/to/repo. Controlla di nuovo l'URL del repository remoto.


3

Cosa ho fatto per risolvere questo problema (Windows):

  1. Apri PuttyGen importa la mia chiave ssh e convertila in una chiave putty, salva le parti pubbliche e private nella cartella .ssh (% userprofile% .ssh)
  2. Apri Putty e vai su Connection-> SSH-> Auth, quindi imposta il file della chiave privata lì.
  3. Torna a Sessione, seleziona Impostazioni predefinite e premi Salva.
  4. Ora prova a clonare di nuovo e ti verrà chiesta la passphrase sulla tua chiave ssh, inseriscila e dovrebbe funzionare.

2

La risposta di Pramodtech ha smesso di funzionare per me con la versione corrente del client Git ufficiale di Windows. Memorizza l'eseguibile ssh Git\usr\bininvece di Git\binadesso (dalla versione 2.5 rilasciata nell'agosto 2015).

Quindi vai a TortoiseGit > Settings > Networke modifica il percorso del client SSH in:

C:\Program Files\Git\usr\bin\ssh.exe (o qualunque sia il percorso della tua installazione Git)

inserisci qui la descrizione dell'immagine



1

Dal momento che nessuna delle soluzioni fornite qui ha funzionato per me, e dopo molte delusioni con le soluzioni che ho trovato online sono finalmente riuscito a risolverlo sulla mia macchina.

Non so quando o come ho impostato il mio mastice TortoiseGit per utilizzare sempre una chiave specifica, e ovviamente questo ha creato tutti i problemi quando ho provato a connettermi a server diversi con una nuova coppia di chiavi.

Quindi, come risolvere un problema e come sapere se hai effettivamente lo stesso problema che ho avuto io:

  1. Scarica plink.exesulla tua macchina da qui
  2. Apri il prompt dei comandi di Windows nella stessa directory in cui hai scaricato il file plink.exe
  3. Esegui questo comando: plink -v <path_to_your_git_clone_repo_link>
  4. Guarda l'output e vedi se hai una linea simile Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. Se vedi una riga come questa, e non è il file della chiave di stucco che vuoi usare, vai e rinomina / elimina / sposta quel file in modo che il plink non possa caricarlo la prossima volta
  6. Dopo aver rinominato il file problematico dovrebbe funzionare tutto come previsto, se esegui il comando dal punto 3. dovresti vedere che plink ora non può caricare quel ppkfile e dopo dovrebbe produrre qualcosa di simile Pageant is running. Requesting keys.e in realtà lo volevamo

Cioè, se qualcuno sa come posso disabilitare questa "chiave di stucco predefinita globale" fammelo sapere nei commenti e aggiornerò questa risposta con le informazioni.


1

Per favore, non l'URL dell'origine remota del repository può causare questo problema. Avevo un vecchio repository che funzionava perfettamente e uno nuovo che ho appena clonato che mi chiedeva la password.

Dopo aver confrontato le informazioni in Settings > Git > Remote > Urlho visto che quello che ha funzionato aveva:

git@github.com:githubAccount/repoName.git

Il nuovo che non funzionava aveva un'estensione https indirizzo.

Si prega di vedere anche lo screenshot qui sotto.

inserisci qui la descrizione dell'immagine


1

La riga di comando Tortoise GIT DOS ha smesso di chiedere la mia password una volta che ho inserito le mie chiavi private e pubbliche nella directory C: \ Users \ .ssh. Sono su Windows 7.


1

Ho avuto lo stesso problema. Nel mio caso non c'era una password che potessi inserire lì. La connessione è stata configurata come SSH ma non sono state definite chiavi per il repository.

Check out: configurazione SSH TortoiseGIT . Queste istruzioni sono per cloudforge, ma per altri servizi devi fare lo stesso, basta fornire la tua chiave pubblica al tuo provider di repository git.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.