Schildpatt fragt nach Passwort


83

Ich habe gerade angefangen an Git zu arbeiten. Ich benutze Windows 7 und habe msysgit (1.7.8) und Tortoisegit (1.7.6) installiert. Das Repository wird auf einem Linux-Server erstellt, auf den über LAN zugegriffen werden kann. Das Problem, mit dem ich konfrontiert bin, ist, dass ich das Repository nicht mit Tortoisegit klonen kann. Es fragt nach dem Passwort und ich bin nicht sicher, welches Passwort gefragt wird. Gleichzeitig konnte ich das Repository mit Git Gui klonen und alle Operationen ausführen. Kann mir bitte jemand helfen, zu verstehen, warum Tortoisegit nach einem Passwort fragt, wenn Git Gui dies nicht tut? Ich habe versucht, Git und Tortoisegit zu deinstallieren und dann erneut zu installieren, aber kein Erfolg.

Schildpattfehler


Ihr Git-Server verwendet eine Pubkey-Authentifizierung?
Felix Yan

Was macht TortoiseGit auf dem GLEICHEN Klon des Repos und was macht die Git-GUI?
Manojlds

2
Wenn Sie mit der rechten Maustaste auf Tortoise Git klicken, klicken Sie auf Einstellungen. Bei Git gibt es einen Link -> Remote, klicken Sie darauf. Klicken Sie in der Remote-Liste auf Ursprung. Rechts sehen Sie die URL. Anstelle Ihres Benutzernamens bei URL schreiben Sie Folgendes: Benutzername: <Ihr Passwort>. Wenn Sie eine Git-Operation von Tortoise Git aus ausführen, werden Sie feststellen, dass Sie nie nach dem Passwort gefragt werden.
Kamaci

1
Verwenden Sie den http-URI anstelle von SSH? Das war mein Problem
CAD-

Antworten:


129

Mein Kollege hat das Problem gelöst. Schritte:

  1. Rechtsklick -> TortoiseGit -> Einstellungen -> Netzwerk
  2. SSH-Client zeigte auf C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. Pfad geändert zu C:\Program Files (x86)\Git\bin\ssh.exe

Alternativer Weg: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe


es funktioniert bei mir mit tortoise version 1.8.3 ... dieses problem hat mich verrückt gemacht !! unter Windows XP @ 32 Bit Tortoisegit funktioniert nur mit c: \ programmi \ git \ bin \ ssh.exe unter Windows 7 @ 64 funktioniert es gut mit toirtoiseplink.exe (Standard)
Evilripper

Auf meinem Windows 8-Computer funktionierte das Verweisen des SSH-Clients auf die Datei msysGit ssh.exe, wenn die Kennwortabfrage überhaupt nicht angezeigt wurde. Ein anderes Problem, aber diese Lösung ist definitiv einen Versuch wert für jemanden, der SSH-Probleme mit TortoiseGit hat
Icermann

1
Für mich hat dies nicht geholfen (zumindest beim Herstellen einer Verbindung zu GitHub habe ich keine anderen Repositorys ausprobiert).
Suma

2
Danke, hat perfekt funktioniert. Obwohl meine ssh.exeLügen in meinem BenutzerverzeichnisC:\Users\...\AppData\Local\Programs\Git\usr\bin
ppasler

6
Wie @ppasler erwähnt hat, befindet sich ssh.exe jetzt in C: \ Programme (x86) \ Git \ usr \ bin \ ssh.exe oder an dem von ihm genannten Speicherort, abhängig von der Installation.
Vlad Schnakovszki

33

Wenn Sie einen Benutzernamen / ein Passwort verwenden müssen, gibt es eine viel einfachere Lösung als die aktuelle Antwort Nr. 2:

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

Wenn Sie das nächste Mal das Passwort für ein Repo eingeben, wird dieses Passwort automatisch gespeichert.


Wenn Sie ein Repository verwenden, für das SSH-Schlüssel anstelle von Benutzername / Kennwort erforderlich sind (was anscheinend das ursprüngliche Problem von OP war) , müssen Sie dies tun

  1. Öffnen Sie den SSH-Schlüssel in PuTTY gen (installiert sich neben Tortoise Git)
  2. Speichern Sie den Schlüssel in PuTTY gen als PuTTY-Schlüssel.
  3. Im Repository , Right-click --> Tortoise Git --> Settings --> Git --> Remotes. Suchen Sie Ihre Fernbedienung (normalerweise 'Ursprung') und laden Sie den PuTTY-Schlüssel aus Schritt 2.

In meinem Fall funktioniert dies nur bei Verwendung eines Benutzernamens. Es funktioniert nicht, wenn Sie die E-Mail-Adresse des Benutzers eingeben. Denken Sie also daran.
Razze

3
Dies war die kürzeste und klarste Antwort, danke.
Alphas Supremum

Ich habe immer nach dieser genauen Antwort gesucht!
NielW

23

Um es ohne Schlüssel zu tun ...

Klicken Sie mit der rechten
Maustaste auf Ihren Ordner. Wählen Sie tortoiseGit-> Einstellungen-> Git-> Remote.
Wählen Sie den Ursprung (oder was auch immer Sie als Hauptfernbedienung bezeichnet haben).

Verwenden Sie unter URL dieses Format.

Https: // USERNAME: PASSWORD @ URL

Wo USERNAME Ihr Benutzername ist
: Der Doppelpunkt trennt Benutzername und Passwort und muss dort sein.
PASSWORD ist Ihr Passwort.
@ Trennt Anmeldeinformationen mit Ihrer URL.
URL ist die URL, die Sie verwenden würden, um eine Verbindung zur .git-Ressource

herzustellen. Vielen Dank an Kamaci


3
Diese Lösung funktioniert auch mit Schlüssel. Klonen Sie Https: // USERNAME @ URL und es geht Ihnen gut.
Orace

2
Ja, außer dies nicht zu tun, da TortoiseGit beim Zusammenführen dazu neigt, die gesamte URL in die Commit-Nachricht einzufügen!
Mwardm

Dies ist die perfekte Lösung. Aber gibt es eine Möglichkeit, das Passwort zu verbergen, da es im Klartext ist.
Amit Kumar

1
Was ist, wenn das Passwort ein @ -Zeichen enthält?
Hammad Dar

Ich habe auf diese Antwort zurückgegriffen, weil ich mingw64 habe und folgendes Protokoll erhalte: Überspringen der Befehlszeile '"C: \ Programme \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe"' ('C: \ Programme \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'nicht gefunden) Benötigen Sie eine gültige Befehlszeile; Bearbeiten Sie die Zeichenfolgenressourcen entsprechend (3x) Fehler: Aufforderungsskript konnte nicht ausgeführt werden (Exit-Code 1)
RW4

14

Speichern von Benutzername und Passwort mit TortoiseGit

Das Speichern Ihrer Anmeldedaten in TortoiseGit ist ziemlich einfach. Spart die Notwendigkeit, bei jedem Ziehen oder Drücken Ihren Benutzernamen und Ihr Passwort einzugeben.

  1. Erstellen Sie eine Datei mit dem Namen _netrc mit den folgenden Inhalten:

    Maschine github.com
    Login Yourlogin
    Passwort Ihr Passwort

  2. Kopieren Sie die Datei nach C: \ Users \ (oder an einen anderen Speicherort; dies ist zufällig der Ort, an dem ich sie abgelegt habe).

  3. Gehen Sie zur Eingabeaufforderung und geben Sie setx home C: \ Users \ ein

Hinweis: Wenn Sie etwas früher als Windows 7 verwenden, funktioniert der Befehl setx möglicherweise nicht für Sie. Verwenden Sie stattdessen set und fügen Sie die Variable für die Heimumgebung über die erweiterten Einstellungen unter Arbeitsplatz zu Windows hinzu.

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


1
es funktioniert einfach gut, aber gibt es eine Möglichkeit, das einfache Passwort zu verschlüsseln? Es war mir unangenehm, mein Github-Passwort in einer einfachen Textdatei zu speichern.
Dio Phung

@DioPhung Denken Sie darüber nach, was Sie gerade gesagt haben. Wenn das Passwort verschlüsselt ist, müssen Sie sich jetzt ein (neues) Passwort für die Verwendung des Passworts merken. Wenn Sie sich das Passwort nicht merken müssen, ist es so gut wie kein Passwort (aus Sicht der lokalen Bedrohung). Entweder Sie wollen Bequemlichkeit oder Sicherheit.
Camilo Martin

1
@DioPhung Wenn Sie Angst vor lokalen Administratoren haben, können diese problemlos einen Keylogger installieren. Ein lokaler Administrator kann mit Ihren Daten tun, was er will, und als solche wäre jede Sicherheit gegen sie Sicherheit durch Dunkelheit (selbst Tools und Tricks, die Banken verwenden, können Sie nicht vor einem sachkundigen und entschlossenen lokalen Administrator schützen, und sie versuche es hart). Was meinst du mit Hash? Ein Hash ist nicht umkehrbar. Und wenn Sie mit dem Passwort selbst verschlüsseln, müssen Sie es trotzdem jedes Mal eingeben ... Es ist also dasselbe, als würde man es gar nicht erst verschlüsseln.
Camilo Martin

1
Für die @ CamoMartin-Verschlüsselung ist kein Kennwort erforderlich. Es gibt viele Möglichkeiten, sich bei einem System zu authentifizieren, das möglicherweise bequemer als ein Kennwort ist. Sicherheit ist nicht alles oder nichts.
Adam

1
Obwohl diese Lösung möglich ist, ist es besser, das Kennwort in Windows PasswordVault zu speichern . Diese Funktion ist seit März 2013 in TortoiseGit verfügbar, indem der API- Git-Credential-Store implementiert wird . Es ist wahrscheinlich auch einfacher: From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OKund Sie sind fertig. Ich habe eine vollständige Antwort auf diese Frage für Interessierte geschrieben.
Adam

5

Eine Möglichkeit, dies zu tun, ist

  • Generieren Sie ein Schlüsselpaar mit PuttyGen (oder importieren Sie es in .ppk, wenn Sie bereits einen Schlüssel haben).
  • Laden Sie den privaten Schlüssel in peagent
  • Importieren Sie den öffentlichen Schlüssel in Ihren Gitosis-Server (geben Sie Ihren öffentlichen Schlüssel an Ihren Administrator weiter).
  • und verwenden Sie dann plink als SSH-Client

plink arbeitet nativ mit peagent zusammen, um den geladenen Schlüssel abzurufen.

Sie finden plink.exe zusammen mit Peagent und anderen Leckereien in der Standard-Kittverteilung

Um es zu benutzen, gehen Sie zu:

TortoiseGit-Einstellungen -> Netzwerk -> SSH-Client.

Standardmäßig enthält dies den Pfad zu TortoisePlink.exe, stattdessen den Pfad zu plink.exe

Alternativ können Sie ssh (.exe) in der msys (git) -Distribution verwenden, aber dann können Sie keinen privaten Schlüssel in der Kombination .ppk-Format / Peagent verwenden. Sie müssen Ihren Schlüssel entweder über PuttyGen in das OpenSSH-Format exportieren oder stattdessen ein Schlüsselpaar mit ssh-keygen erstellen.


Was meinst du mit "SSH-Client statt TortoisePlink Point to Plink"? Wo befindet sich dieses SSH-Programm wahrscheinlich?
Mikaël Mayer

Entschuldigung für die fehlende Zeichensetzung, ich denke, das ist die Quelle der Verwirrung. Ich habe die Antwort aktualisiert
mzzzzb

Sie müssen nichts an den Einstellungen ändern. Geben Sie einfach den privaten Putty-Schlüssel an, wenn Sie ein Repo über SSH klonen und fertig sind. Denken Sie daran, den SSH-Endpunkt im Klonfenster und NICHT den https-Endpunkt einzugeben.
MoonStom

4

Um die Authentifizierung zu automatisieren, verwenden Sie entweder:

  1. SSH-Schlüssel, wie andere bereits betont haben, oder
  2. der eingebaute Helfer für Anmeldeinformationen.

Speichern Sie Ihr Passwort natürlich nicht in einer Textdatei, es sei denn, das Repo ist nicht wichtig.

TortoiseGit> 1.8.1 installiert den Helfer git-credential-winstore, der die lokale API für den Zugriff auf und die Speicherung Ihrer Anmeldeinformationen im vorhandenen lokalen Windows Credential Store bereitstellt .

Sie können die gespeicherten Anmeldeinformationen anzeigen, indem Sie in der Systemsteuerung → Benutzerkonten → Anmeldeinformations-Manager "Windows-Anmeldeinformationen" auswählen. Die Einträge, die mit "git:" beginnen, stammen aus dem git-credential-winstore.

Sie können wincred pro Repository einrichten, indem Sie:

(GUI)

  1. Navigieren Sie im Datei-Explorer zum Repository.
  2. Kontext-Klick → TortoiseGit → Einstellungen → Git → Anmeldeinformationen
  3. Anmeldeinformations-Helfer: wincred - nur dieses Repository
  4. Bei der nächsten Authentifizierung beim Repo werden die Anmeldeinformationen gespeichert.

(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
    

Sie können alle für Repos cmdkey /list:git:*
gespeicherten Anmeldeinformationen mit auflisten. Nach dem Speichern werden Kennwörter von cmdkey ( http://ss64.com/nt/cmdkey.html) nicht angezeigt ).

Um alle Anmeldeinformationen mit Kennwörtern aufzulisten, müssen Sie die Windows-API verwenden . Für Powershell gibt es CredMan :

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

4

Ich hatte das gleiche Problem. Meine Umgebung ist Windows 10 mit TortoiseGit 2.3.0.0 und Git Version 2.11.0.windows.1

Folgendes löste mein Problem:

  • Rechtsklick -> TortoiseGit -> Einstellungen -> Netzwerk
  • Aktualisieren Sie den SSH-Client auf C: \ Programme \ Git \ usr \ bin \ ssh.exe

Geben Sie hier die Bildbeschreibung ein


3

Die URL und der Fenstertitel TortoisePlink weisen beide darauf hin, dass Tortoise versucht, ssh als Transportprotokoll zu verwenden. Git unterstützt mehr als ein Transportprotokoll, einschließlich Dateisystemzugriff und SSH-Zugriff. In Ihrer Frage beschreiben Sie, dass Sie über den Dateisystemzugriff auf Ihr Remote-Repo zugreifen möchten. In diesem Fall sollte Ihre Remote-URL ungefähr so ​​aussehen file://server/path/to/repo. Bitte überprüfen Sie Ihre Remote-Repo-URL erneut.


3

Was ich getan habe, um dies zu beheben (Windows):

  1. Öffnen Sie PuttyGen, importieren Sie meinen SSH-Schlüssel und konvertieren Sie ihn in einen Kittschlüssel. Speichern Sie sowohl öffentliche als auch private Teile im Ordner .ssh (% userprofile% .ssh).
  2. Öffnen Sie Putty und gehen Sie zu Verbindung-> SSH-> Authentifizierung. Legen Sie dort Ihre private Schlüsseldatei fest.
  3. Gehen Sie zurück zu Sitzung, wählen Sie Standardeinstellungen und klicken Sie auf Speichern.
  4. Versuchen Sie nun erneut zu klonen und Sie werden nach der Passphrase auf Ihrem SSH-Schlüssel gefragt. Geben Sie sie ein und es sollte funktionieren.

2

Die Antwort von Pramodtech funktionierte für mich mit der aktuellen Version des offiziellen Windows Git-Clients nicht mehr. Es speichert die ausführbare ssh-Datei Git\usr\binstatt Git\binjetzt (seit Version 2.5, die im August 2015 veröffentlicht wurde).

Gehen Sie also zu TortoiseGit > Settings > Networkund ändern Sie den SSH-Clientpfad in:

C:\Program Files\Git\usr\bin\ssh.exe (oder wie auch immer der Pfad zu Ihrer Git-Installation lautet)

Geben Sie hier die Bildbeschreibung ein



1

Da keine der hier angebotenen Lösungen für mich funktionierte und ich nach vielen Enttäuschungen mit Lösungen, die ich online gefunden hatte, endlich gelang, dies auf meinem Computer zu beheben.

Ich weiß nicht, wann oder wie ich meinen TortoiseGit-Kitt so eingerichtet habe, dass immer ein bestimmter Schlüssel verwendet wird, und dies machte natürlich alle Probleme, als ich versuchte, mit einem neuen Schlüsselpaar eine Verbindung zu einem anderen Server herzustellen.

So beheben Sie ein Problem und stellen fest, ob Sie tatsächlich das gleiche Problem haben wie ich:

  1. Laden plink.exeSie es hier auf Ihren Computer herunter
  2. Öffnen Sie die Windows-Eingabeaufforderung in demselben Verzeichnis, in das Sie Ihre heruntergeladen haben plink.exe
  3. Führen Sie diesen Befehl aus: plink -v <path_to_your_git_clone_repo_link>
  4. Schauen Sie sich die Ausgabe an und sehen Sie, ob Sie eine Linie wie haben Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. Wenn Sie eine Zeile wie diese sehen und es sich nicht um eine Kittschlüsseldatei handelt, die Sie verwenden möchten, benennen Sie diese Datei einfach um / löschen / verschieben Sie sie, damit plink sie beim nächsten Mal nicht laden kann
  6. Nachdem Sie die problematische Datei umbenannt haben, sollte alles wie erwartet funktionieren. Wenn Sie den Befehl ab Punkt 3 ausführen, sollten Sie sehen, dass plink diese ppkDatei jetzt nicht laden kann. Danach sollte sie so etwas ausgeben, Pageant is running. Requesting keys.und wir wollten dies tatsächlich

Das heißt, wenn jemand weiß, wie ich diesen "globalen Standard-Kittschlüssel" deaktivieren kann, lass es mich bitte in den Kommentaren wissen und ich werde diese Antwort mit den Informationen aktualisieren.


1

Bitte nicht die URL des Repo-Remote-Ursprungs kann dieses Problem verursachen. Ich hatte ein altes Repo, das perfekt funktionierte, und ein neues, das ich gerade geklont hatte und das mich nach dem Passwort fragte.

Beim Vergleich der Informationen in Settings > Git > Remote > Urlsah ich, dass derjenige, der funktionierte, hatte:

git@github.com:githubAccount/repoName.git

Der neue, der nicht funktionierte, hatte eine httpsAdresse.

Bitte sehen Sie auch den Screenshot unten.

Geben Sie hier die Bildbeschreibung ein


1

Die Schildkröten-GIT-DOS-Befehlszeile fragte nicht mehr nach meinem Passwort, nachdem ich meine privaten und öffentlichen Schlüssel in das Verzeichnis C: \ Users \ .ssh gestellt hatte. Ich bin auf Windows 7.


1

Hatte das gleiche Problem. In meinem Fall gab es kein Passwort, das ich dort eingeben konnte. Die Verbindung wurde als SSH konfiguriert, es wurden jedoch keine Schlüssel für das Repo definiert.

Check out: TortoiseGIT SSH-Konfiguration . Diese Anweisungen gelten für Cloudforge, aber für andere Dienste müssen Sie dasselbe tun. Geben Sie einfach Ihren öffentlichen Schlüssel an Ihren Git-Repository-Anbieter weiter.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.