Ich versuche, ein Repo von meinem BitBucket-Konto auf meinen Windows 10-Laptop zu klonen (mit GitBash). Ich habe alle für die Verbindung erforderlichen Schritte ausgeführt (Richten Sie meinen SSH-Schlüssel ein, der durch erfolgreiches SSHing von [email protected] usw. überprüft wurde). Wenn ich jedoch versuche, ein Repo zu klonen, wird die Eingabeaufforderung ständig aufgelegt, nachdem bestätigt wurde, dass ich den Bitbucket-Schlüssel zwischenspeichern möchte.
User@Laptop 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. Wenn Sie versuchen, einen Git-Pull-Origin-Master aus diesem Repo zu initiieren, werden Sie auch aufgefordert, den Schlüssel zwischenzuspeichern, und hängen dann ohne Rückmeldung. Obwohl bei einem SSH-Test nicht gefragt wird, ob der Schlüssel zwischengespeichert werden soll, fragen Git-Operationen jedes Mal nach dem Schlüssel, bevor sie fehlschlagen.
Da es keine Fehlermeldungen gibt, mit denen ich arbeiten kann, weiß ich wirklich nicht, was falsch ist. Ich habe mehrere Repos ausprobiert, darunter auch sehr kleine, ohne Erfolg.
putty
Hinzufügen einesgithub
Schlüssels im Cache hat bei mir funktioniertbitbucket.org
)quelle
Öffnen Sie dazu ein Powershell-Fenster und fügen Sie Folgendes ein:
oder mit PuTTY Standalone-Version:
Wissenswert ist auch, dass Putty bekannte Hosts unter einem Registrierungsschlüssel speichert :
Um das oben Gesagte zu verknüpfen, können Sie Folgendes in eine
.reg
Datei einfügen und ausführen:putty-hosts.reg Kern
quelle
FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
-P <port>
Argument übergeben.Ich habe es geschafft, es zum Laufen zu bringen, indem ich plink direkt ausgeführt habe. Nachdem pageant ausgeführt wurde, benutze den Befehl plink direkt -
plink.exe -agent -v [email protected]
dann, nachdem dieser Git funktioniert, ohne zu hängen.quelle
Um dieses Problem zu umgehen, habe ich GitBash so konfiguriert, dass plink mit
-batch
Option verwendet wird. Die Option deaktiviert alle Eingabeaufforderungen. Der Plink wird beendet, ohne zu hängen, und fügt dem Cache keinen wichtigen Fingerabdruck hinzu.Um dem
-batch
von GitBash ausgeführten Plink-Befehl Parameter hinzuzufügen, können Sie eine Git-Konfigurationsoption festlegen:Oder setzen Sie die
GIT_SSH_COMMAND
Umgebungsvariable.Die Ausgabe beim Klonen eines Repos von einem unbekannten Host sieht folgendermaßen aus:
Nach dieser Nachricht können Sie einen Schlüssel zum Cache mit dem folgenden Befehl hinzufügen:
BEMERKUNG : Bitte überprüfen Sie, ob Plink in Ihrem ist
PATH
. Alternativ können Sie einen UNIX-ähnlichen Pfad in der GitBash-Konfigurationsoption verwenden, z.quelle
Selbst nachdem Sie die in anderen Antworten erwähnte Problemumgehung ausgeführt haben, kann ein Fehler wie der folgende auftreten:
Um beide Probleme gleichzeitig zu lösen, ändern Sie git bash so, dass SSH anstelle von PuTTY verwendet wird, indem Sie Ihrer
~/.profile
Datei Folgendes hinzufügen (C:\Users\<Username>\.profile
). Wenn Sie diese Datei noch nicht haben, erstellen Sie eine neue Datei mit dieser Zeile.Dann öffnen Sie ein neues git bash Fenster und versuchen Sie ,
git clone
odergit pull
wieder.Beachten Sie, dass Sie möglicherweise einen SSH-Schlüssel erstellen müssen, falls Sie noch keinen haben. Befolgen Sie dazu die Anweisungen auf der Bitbucket- Site.
Siehe diese SO-Frage für verwandte Informationen.
quelle
Überprüfen Sie in Ihrer Git-Bash-Shell, ob GIT_SSH vorhanden ist:
echo $GIT<tab><tab>
Wenn es vorhanden ist und auf Kitt gesetzt ist, führen
unset GIT_SSH
Sie Folgendes aus: Sie möchten dies wahrscheinlich in eines der Git-Bash- Startskripte einfügen .
Dies ist KEINE universelle Lösung. In unserem speziellen Fall hat es funktioniert.
quelle
Es klingt ein bisschen albern, aber nachdem ich all das ausprobiert hatte, entschied ich mich, Git Bash mit den Standardoptionen neu zu installieren und es funktionierte.
quelle