Ich verwende soureTree für das Clone-SSH-Projekt.
- Ich habe bereits einen SSH-Schlüssel erstellt
- Ich habe bereits die gitlab-SSH-Schlüsseleinstellung eingerichtet
- Ich habe ssh-add “mysshkey”
- Ich habe ssh-add -K ‘mysshkey’
Wenn ich ssh -T drucke, kann ich es in der Befehlszeile erfolgreich machen. Wenn ich Klon git, ziehe, drücke in ssh-Wege … Es funktioniert immer noch in der Befehlszeile. (Terminal)
aber im Quellbaum wird jetzt immer noch ein Fehler angezeigt:
Permission denied (publickey)
wie kann ich es lösen?
Ich habe SourceTree 2.7.6 heruntergeladen und bin auf dasselbe Problem gestoßen. Ich denke, @ Frankie_0927 hat Recht, der private Schlüssel muss id_rsa heißen und im SSH-Agenten registriert sein.
Für andere Leute, die auf dieses Problem gestoßen sind: Versuchen Sie, ein Schlüsselpaar zu generieren, indem Sie den Anweisungen im folgenden Link folgen:
https://help.github.com/articles/connecting-to-github-with-ssh/
Speichern Sie den privaten Schlüssel id_rsa in ~/user/YOURUSERNAME/.ssh (Pfad für Mac) und posten Sie den öffentlichen Schlüssel im Github-Konto. dann renne
ssh-add -l
du wirst sehen
The agent has no identities.
also rennst du
ssh-add -K ~/.ssh/id_rsa
um den Schlüssel in den SSH-Agenten hinzuzufügen. danach laufen
ssh-add -l
Auch hier sehen Sie, dass der Schlüssel hinzugefügt wurde und das Problem gelöst sein sollte.
Ich konnte es beheben, indem ich meinen Github-Schlüssel zum Apple-Schlüsselbund hinzufügte:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Sie erhalten diese Nachricht, weil sie Sie mit keinem der Schlüssel authentifizieren konnte, die ihr von Ihrem SSH-Agenten angeboten wurden. Um zu überprüfen, ob dies der Fall ist, gehen Sie wie folgt vor:
ssh -T
Dadurch wird versucht, für Mercurial eine Verbindung zu ihm herzustellen. Sie sollten eine Antwort ähnlich der folgenden erhalten, wenn Ihr Schlüssel korrekt geladen wurde.
Wenn Sie keine Nachricht sehen, kann dies mehrere Faktoren haben, aber dies sind die häufigsten:
– Ihr öffentlicher Schlüssel ist nicht geladen
Um zu überprüfen, ob Ihr öffentlicher Schlüssel geladen ist, gehen Sie wie folgt vor:
-
Öffnen Sie einen Browser und melden Sie sich bei Origin an.
-
Die Seite SSH-Schlüssel wird angezeigt. Es zeigt eine Liste aller vorhandenen Schlüssel.
-
Wenn Sie keine Schlüssel aufgelistet haben, richten Sie einen ein.
– Ihre Identität wird nicht in Ihren SSH-Agenten geladen
Wenn Ihr SSH-Agent keinen Schlüssel anbieten kann, schlägt die Verbindung fehl. Um herauszufinden, welche Schlüssel Ihr SSH-Agent derzeit anbietet, und sie hinzuzufügen, gehen Sie wie folgt vor:
$ ssh-add -l
Wenn Sie Ihren Schlüssel dann nicht aufgelistet sehen, fügen Sie ihn hinzu
ssh-add ~/.ssh/identity
Weitere Informationen finden Sie in unserem vollständigen Leitfaden zur Fehlerbehebung bei SSH-Problemen.
– Sie sind nicht berechtigt, das Repository auf Ihrem lokalen Dateisystem zu erstellen
Wenn Sie den Fehler “Permission denied” erhalten, ist es auch möglich, dass git oder mercurial keine Berechtigung hat, den Projektordner lokal zu erstellen. Überprüfen Sie die Berechtigungen für das Verzeichnis, in dem Sie versuchen, das Projekt auszuchecken, und stellen Sie sicher, dass Sie über Schreibzugriff verfügen.
1 Right click and "Run as Administrator".
2 Type ssh-keygen
3 Press enter.
4 It will ask you to save the key to the specific directory.
5 Press enter. It will prompt you to type password or enter without password.
6 The public key will be created to the specific directory.
7 Now go to the directory and open .ssh folder.
8 You'll see a file id_rsa.pub. Open it on notepad. Copy all text from it.
9 Go to https://gitlab.com/profile/keys .
10 Paste here in the "key" textfield.
11 Now click on the "Title" below. It will automatically get filled.
12 Then click "Add key".
Es wurde festgestellt, dass in /var/log/gitlab/sshd/current eine Meldung mehrfach vorkam: Authentifizierung verweigert: Bad Ownership or Modes for File /var/opt/gitlab/.ssh/authorized_keys Danach habe ich den Besitz dieser Datei geändert 99:users zu git:users mit: chown git:usersauthorized_keys
Sourcetree verwendet den SSH-Schlüssel unter dem Ordner /User/YOURNAME/.ssh/id_rsa
um mit dem Git-Remote-Server zu arbeiten.
Wenn Sie Schlüssel in einem anderen Ordner generieren, ist der Schlüssel nur in dem von Ihnen ausgeführten Terminal gültig eval "$(ssh-agent -s)"
& ssh-add
. Darüber hinaus wird es ungültig, sobald das Terminal geschlossen wird.