wake-up-neo.com

Git-Klon/Pull friert ständig bei "Schlüssel im Cache speichern?"

Ich versuche, ein Repo von meinem BitBucket-Konto auf meinen Windows 10-Laptop (mit GitBash) zu klonen. Ich habe alle erforderlichen Schritte zum Herstellen der Verbindung abgeschlossen (Einrichten meines SSH-Schlüssels, Überprüfung durch erfolgreiches SSHing von [email protected] usw.). Immer wenn ich versuche, ein Repo zu klonen, wird der Prompt immer wieder aufgelegt, nachdem er bestätigt hat, dass ich den Bitbucket-Schlüssel zwischenspeichern möchte. 

[email protected] MINGW64 /C/Repos
$ git clone [email protected]:mygbid/test.git
Cloning into 'test'...
The server's Host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
If you trust this Host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this Host, press Return to abandon the
connection.
Store key in cache? (y/n) y

Es werden keine Dateien geklont und das Ergebnis ist ein leeres Repo. Beim Versuch, einen Git-Pull-Origin-Master aus diesem Repo zu initiieren, wird auch gefragt, ob der Schlüssel zwischengespeichert werden soll, und hängt dann ohne Rückmeldung. Obwohl ich bei einem Test-SSH nicht nach dem Cache-Cache frage, fragt git-Vorgänge immer nach dem Schlüssel, bevor er ausfällt.

Ohne Fehlermeldungen kann ich wirklich nicht wissen, was falsch ist. Ich habe mehrere Repos ausprobiert, darunter auch sehr kleine, jedoch ohne Erfolg.

108
MarathonStudios

Dieses Problem hatte ich auch beim Klonen eines Repos unter Windows 10. 

Ich bin damit umgekommen, indem ich die PuTTY-GUI für SSH auf dem betreffenden Server verwendet habe (in Ihrem Fall: bitbucket.org) und dann auf "Ja" geklickt, wenn Sie in der Eingabeaufforderung gefragt werden, ob Sie den Server-Schlüssel im Cache speichern möchten. Den Klonbefehl erneut auszuführen, hat für mich funktioniert!

126
theChumpus
  1. Öffnen Sie PuTTY
  2. Geben Sie den Hostnamen ein (wie bitbucket.org)
  3. Klicken Sie auf Öffnen
  4. Klicken Sie im Popup auf Ja, um den Host-Schlüssel zwischenzuspeichern
  5. Schließen Sie PuTTY
86
cambunctious

Öffnen Sie dazu in Powershell ein Powershell-Fenster und fügen Sie Folgendes ein:

echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh [email protected]
echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh [email protected]
echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh [email protected]

oder mit der PuTTY Standalone-Version:

echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh [email protected]
echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh [email protected]
echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh [email protected]

Es ist auch wissenswert, dass PuTTY bekannte Hosts unter einem Registrierungsschlüssel speichert :

HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys

Um die oben genannten Verknüpfungen zu verknüpfen, könnten Sie Folgendes in eine .reg-Datei einfügen und ausführen:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys]
"[email protected]:github.com"="0x23,0xab603b8511a67679bdb540db3bd2034b004ae936d06be3d760f08fcbaadb4eb4edc3b3c791c70aae9a74c95869e4774421c2abea92e554305f38b5fd414b3208e574c337e320936518462c7652c98b31e16e7da6523bd200742a6444d83fcd5e1732d03673c7b7811555487b55f0c4494f3829ece60f94255a95cb9af537d7fc8c7fe49ef318474ef2920992052265b0a06ea66d4a167fd9f3a48a1a4a307ec1eaaa5149a969a6ac5d56a5ef627e517d81fb644f5b745c4f478ecd082a9492f744aad326f76c8c4dc9100bc6ab79461d2657cb6f06dec92e6b64a6562ff0e32084ea06ce0ea9d35a583bfb00bad38c9d19703c549892e5aa78dc95e250514069"
"[email protected]:Gist.github.com"="0x23,0xab603b8511a67679bdb540db3bd2034b004ae936d06be3d760f08fcbaadb4eb4edc3b3c791c70aae9a74c95869e4774421c2abea92e554305f38b5fd414b3208e574c337e320936518462c7652c98b31e16e7da6523bd200742a6444d83fcd5e1732d03673c7b7811555487b55f0c4494f3829ece60f94255a95cb9af537d7fc8c7fe49ef318474ef2920992052265b0a06ea66d4a167fd9f3a48a1a4a307ec1eaaa5149a969a6ac5d56a5ef627e517d81fb644f5b745c4f478ecd082a9492f744aad326f76c8c4dc9100bc6ab79461d2657cb6f06dec92e6b64a6562ff0e32084ea06ce0ea9d35a583bfb00bad38c9d19703c549892e5aa78dc95e250514069"
"[email protected]:bitbucket.org"="0x23,0xb9b88df3578371a7eb80c78bcda14fb30da436f11ca932a5fd5a8b6adfcc681df7a59cb4cb7ac966d9eac11daa38ebdbc0a6582a210ed4ee95a8d101c4abc925e942ab47535d64f9a5b3b68035c2ea1e900d709a1e8ea938718f532f9805a190446b92bac3040126225ae9d8374bc2008f106979d631734c7453f78c70091f4783b288869cb3c1941a784cd9baad823be27333833dc1f488a45b85952be75cf0a64965662302e3915378dcd5cfcd3ec903d804a29dff2fdf19df5deba4534b09e4dea6e44f152e339b3c43be98ddadfc56533192e216a3d673f00b4aa9cc9e7870acd8b6adb7e0feb77f2292fc2dede94819def3eb1e785541a06ab31ccf725f"

PuTTY-hosts.reg Gist

18
Tim Abell

Selbst nachdem Sie die in anderen Antworten erwähnte Problemumgehung ausgeführt haben, kann ein Fehler auftreten:

FATALER FEHLER: Getrennt: Keine unterstützten Authentifizierungsmethoden verfügbar (Server gesendet: publickey)

Um beide Probleme auf einmal zu lösen, ändern Sie git bash so, dass SSH anstelle von PuTTY verwendet wird, indem Sie der ~/.profile-Datei (C:\Users\<Username>\.profile) Folgendes hinzufügen. Wenn Sie diese Datei noch nicht haben, erstellen Sie eine neue Datei mit dieser Zeile.

GIT_SSH="/usr/bin/ssh.exe"

Öffnen Sie dann ein neues Git-bash-Fenster und versuchen Sie es erneut mit Ihrem git clone oder git pull.

Beachten Sie, dass Sie möglicherweise einen SSH-Schlüssel erstellen müssen, wenn Sie noch keinen haben. Folgen Sie dazu den Anweisungen auf der Site Bitbucket .

Siehe this SO frage für verwandte Informationen.

2
Schparky

Ich habe es geschafft, indem ich plink direkt zum Laufen brachte, nachdem pageant ausgeführt wurde, benutze den plink-Befehl direkt - plink.exe -agent -v [email protected].

2
benjaminRRR

Um dieses Problem zu umgehen, habe ich GitBash für die Verwendung von plink mit der Option -batch konfiguriert. Mit dieser Option werden alle Eingabeaufforderungen deaktiviert. Der Plink wird beendet, ohne zu hängen, und es wird kein Fingerabdruck für den Cache hinzugefügt. 

Um den -batch-Parameter zu dem von GitBash ausgeführten plink-Befehl hinzuzufügen, können Sie eine git config -Option festlegen:

git config --global core.sshCommand "plink -batch"

Oder setzen Sie GIT_SSH_COMMAND Umgebungsvariable.

Die Ausgabe beim Klonen eines Repos von einem unbekannten Host sieht folgendermaßen aus:

The server's Host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
Connection abandoned.
fatal: Could not read from remote repository.

Nach dieser Nachricht können Sie einen mit dem Befehl zu zwischenspeichernden Schlüssel hinzufügen:

echo y | plink [email protected]

BEMERKUNG: Bitte überprüfe ob Plink in deiner PATH ist. Verwenden Sie alternativ einen UNIX-ähnlichen Pfad in der GitBash-Konfigurationsoption, z. B .:

/c/Program\ Files/PuTTY/plink.exe -batch
2
Paweł Weselak

Überprüfen Sie in Ihrer Git-Bash-Shell, ob GIT_SSH vorhanden ist:
echo $GIT<tab><tab>
Wenn es existiert und auf PuTTY gesetzt ist, führen Sie Folgendes aus:
unset GIT_SSH
Vielleicht möchten Sie dies in eines der git bash-Startskripte einfügen.
Dies ist KEINE universelle Lösung. In unserem speziellen Fall hat es funktioniert.

0
Richard Jessop

Es klingt ein bisschen dumm, aber nachdem ich all das ausprobiert hatte, beschloss ich, Git Bash mit Standardoptionen neu zu installieren, und es funktionierte. 

0
Vlad