Schritt 1: SSH-Schlüssel generieren
1. Geben Sie in der Befehlszeile ssh-keygen ein. (Wenn im Befehlsfenster ein Fehler angezeigt wird, überprüfen Sie, ob C:\Program Files\Git\usr\bin Teil Ihres Pfads ist.) Der Befehl fordert Sie auf, eine Datei einzugeben, in der der Schlüssel gespeichert werden soll.
Drücken Sie die Eingabetaste, um den Standardschlüssel und -pfad /c/Users//.ssh/id_rsa zu akzeptieren.
Geben Sie bei entsprechender Aufforderung eine Passphrase ein und wiederholen Sie die Eingabe.
Der Befehl erstellt Ihre Standardidentität mit ihren öffentlichen und privaten Schlüsseln.
2. Tortoise-Git konfigurieren
Laden Sie den zuvor generierten SSH-Schlüssel (id_rsa). Sie werden aufgefordert, die Datei auszuwählen. (Standardpfad der SSH-Schlüssel: C:\Users\.ssh)
Während des Ladens wird nach der Passphrase gefragt. Geben Sie die zuvor angegebene Passphrase ein. Nach diesem Schritt lädt Putty das Zertifikat.
Sobald das Zertifikat geladen ist, klicken Sie auf die Schaltfläche „Privaten Schlüssel speichern“. Sie werden aufgefordert, den Ordner auszuwählen, in dem die Datei gespeichert werden soll. Am besten platzieren Sie sie im selben Ordner wie den SSH-Schlüsselordner (C:\Users\.ssh). Geben Sie auch den Dateinamen an.
Jetzt müssen Sie TortoiseGit mit der generierten Schlüsseldatei konfigurieren. Klicken Sie mit der rechten Maustaste auf den Repo-Ordner und wählen Sie TortoiseGit>Einstellungen
Wählen Sie im Einstellungsbildschirm Git > Remote
Wählen Sie im Remote-Bildschirm den Ursprung aus. Dadurch werden die URL und andere Felder ausgefüllt.
Klicken Sie auf die Auslassungspunkte neben dem Feld „Putty-Schlüssel“ und wählen Sie die private Schlüsseldatei aus, die mit Puttygen generiert wurde.
Das Dateiformat des privaten Schlüssels ist
----BEGINNEN SIE MIT DEM PRIVATEN RSA-SCHLÜSSEL------
xxxxxxxyyxyyxyxyx
----ENDE DES PRIVATEN RSA-SCHLÜSSELS-------
Der Fehler war
Privater Schlüssel konnte nicht geladen werden (Datei kann nicht geöffnet werden)
Die Datei verfügt über Lese- und Schreibberechtigung. Abgesehen davon, dass dieser private Schlüssel eine Passphrase enthält, denke ich, dass dies der Grund für den Fehler ist.
Die öffentliche Schlüsselkonfiguration in meinem Bitbucket-Konto,
Antwort1
Wenn ich Sie richtig verstehe, haben Sie kein puttygen
Schlüsselpaar erstellt, sondern ssh-keygen
ein Schlüsselpaar mit Passphrase generiert, dann diesen privaten Schlüssel in Putty geladen und unter „gespeichert“ und dabei Putty.ppk
die Fehlermeldung erhalten Couldn't load Private Key (cannot open file)
.
In welchem Format hatte der von Ihnen erstellte private Schlüssel ( id_rsa
)?
Wenn Sie es in einer Textdatei öffnen, sieht es zunächst ungefähr so aus:
-----BEGIN RSA PRIVATE KEY-----
oder sieht es so aus:
ssh-rsa AWEdxRASFLMAF......
Dies scheint wahrscheinlich ein Problem zu sein, wenn Sie den öffentlichen Schlüssel statt des privaten Schlüssels laden, um ihn als zu speichern .ppk
. Der Screenshot, den Sie zeigen, enthält 2 Dateien: id_rsa
und id_rsa
, aber eine davon ist die private Schlüsseldatei und die andere der öffentliche Schlüssel. Wenn keine Dateierweiterungen angezeigt wurden, haben Sie wahrscheinlich den öffentlichen Schlüssel ausgewählt. Versuchen Sie, den Schlüssel erneut zu importieren, indem Sie die id_rsa
Datei mit dem Zeitstempel 05-03-2018 12:36
in Ihrem Screenshot oben auswählen.
Überprüfen Sie, dass die erste Zeile in dieser Datei lautet
-----BEGIN RSA PRIVATE KEY-----
bevor Sie das tun.
Antwort2
Die Sache ist, dass Ihr PuTTy SSH v2 verwendet (und das ist gut), aber Ihr Schlüssel wird wahrscheinlich für Version 3 generiert.
Hier die Schritte zur Überprüfung:
Nachdem Sie auf „OK“ geklickt haben, generieren Sie einen neuen Schlüssel und versuchen Sie, ihn hochzuladen. Hat bei mir funktioniert.
Antwort3
Ich habe dieselbe Meldung erhalten und das Problem bestand bei mir darin, dass ich zwei Versionen von Putty hatte. Ich verwende Git-Erweiterungen, die installiert werden können, um Putty einzuschließen (es ist die 32-Bit-Version von Putty und befindet sich im Programmdateiverzeichnis der Git-Erweiterungen). Ich habe Putty auch selbst installiert.
Ich hatte den Schlüssel mit der 64-Bit-Putty-Installation generiert und versuchte, diesen Schlüssel mit der 32-Bit-Version zu verwenden. Ich habe das Problem behoben, indem ich meinen Putty-Pfad in den Git-Erweiterungsoptionen geändert habe.
Bild des Einstellungsfensters für Git-Erweiterungen zum Angeben des Speicherorts von Putty
Antwort4
In einer Version von Puttygen erhielt ich genau dieselbe Fehlermeldung („unerwartetes Dateiende“). In der neuesten (0.76) blieb Puttygen beim Versuch, meinen Schlüssel zu importieren, einfach auf unbestimmte Zeit hängen und ich musste den Vorgang abbrechen.
Da ich keine Antworten finden konnte, die mir geholfen haben, und ich C++-Entwickler bin, habe ich beschlossen, Puttygen zu debuggen, da der Quellcode verfügbar ist (unter Verwendung von 0.76).
Das Problem für mich war, dass irgendwieam Ende meines privaten Schlüssels gab es ein zusätzliches Leerzeichen, UndPuttygen kann damit nicht umgehen!
Anstatt dass die letzte Zeile meiner privaten Schlüsseldatei mit
" -----END RSA PRIVATE KEY-----
"
Es endete mit
" -----END RSA PRIVATE KEY-----
"
Puttygen ist so programmiert, dass es so lange nach weiteren wichtigen Informationen in der Datei sucht, bis es eine Zeile findet, die mit " -----END
" beginnt und mit " " endet PRIVATE KEY-----
. Dabei verarbeitet es das EOF (Dateiende) überhaupt nicht richtig!
Ich hoffe, das hilft jemandem, dieses Problem hat mich verrückt gemacht!