Sollten der sudo-Befehl oder erhöhte Rechte mit Git verwendet werden?
Du solltest den sudo-Befehl oder erhöhte Rechte (z. B. Administratorberechtigungen) nicht mit Git verwenden.
Wenn Sie einen sehr guten Grund haben, sollten Sie sicherstellen, dass Sie sudo bei jedem Befehl verwenden. Wenn du SSH-Schlüssel generierst ohne sudo und dann versuchst, einen Befehl wie sudo git push zu verwenden, verwendest du nicht die gleichen Schlüssel, die du generiert hast.
Überprüfen, ob du eine Verbindung mit dem richtigen Server herstellst
Um sicherzustellen, dass du die Verbindung mit der richtigen Domäne herstellst, kannst du den folgenden Befehl eingeben:
ssh -vT git@github.com
ssh -vT git@github.com
Sie sollten dieses Ergebnis sehen:
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to github.com port 22.
Die Verbindung sollte über Port 22 hergestellt werden, es sei denn, Sie haben die Einstellungen so überschrieben, dass SSH über HTTPS verwendet wird.
Immer den „git“-Benutzer verwenden
Alle Verbindungen, auch die zu Remote-URLs, müssen als „git“-Benutzer hergestellt werden. Wenn Sie versuchen, eine Verbindung mit Ihrem GitHub Benutzernamen herzustellen, schlägt dies fehl:
$ ssh -T GITHUB-USERNAME@github.com
> Permission denied (publickey).
Wenn Ihre Verbindung fehlgeschlagen ist und Sie eine Remote-URL mit Ihrem GitHub Benutzernamen verwenden, können Sie die Remote-URL ändern, um den "git"-Benutzer zu verwenden.
Du solltest deine Verbindung mit der folgenden Eingabe überprüfen:
ssh -T git@github.com
ssh -T git@github.com
Sie sollten dieses Ergebnis sehen:
> Hi USERNAME! You've successfully authenticated...
Stelle sicher, dass du einen Schlüssel hast, der verwendet wird
-
Öffne TerminalTerminalGit Bash.
-
Überprüfe, dass du einen privaten Schlüssel erzeugt und in SSH geladen hast.
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
Wenn du GitHub Desktop installiert hast, kannst du dies verwenden, um Repositorys zu klonen und nicht mit SSH-Schlüsseln arbeiten zu müssen.
-
Wenn du Git Bash verwendest, aktiviere ssh-agent:
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566Wenn du eine andere Terminaleingabeaufforderung verwendest, z. B. Git für Windows, aktiviere ssh-agent:
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566Hinweis
Die oben genannten eval-Befehle starten „ssh-agent“ manuell in deiner Umgebung. Diese Befehle können fehlschlagen, wenn ssh-agent bereits als Hintergrundsystemdienst ausgeführt wird. In diesem Fall empfehlen wir, die entsprechende Dokumentation für die Umgebung zu überprüfen.
-
Überprüfe, dass du einen privaten Schlüssel erzeugt und in SSH geladen hast.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Öffne TerminalTerminalGit Bash.
-
Überprüfe, dass du einen privaten Schlüssel erzeugt und in SSH geladen hast.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
Der ssh-add-Befehl sollte eine lange Zeichenfolge von Zahlen und Buchstaben drucken. Wenn nichts gedruckt wird, müssen Sie einen neuen SSH-Schlüssel generieren und ihn GitHubzuordnen.
Tipp
In den meisten Systemen werden die privaten Standardschlüssel (~/.ssh/id_rsa und ~/.ssh/identity) dem SSH-Authentifizierungs-Agent automatisch hinzugefügt. Die Ausführung von ssh-add path/to/key sollte nicht notwendig sein, es sei denn, du überschreibst den Dateinamen beim Generieren eines Schlüssels.
Weitere Informationen abrufen
Du kannst auch überprüfen, ob der Schlüssel verwendet wird, indem du versuchst, eine Verbindung mit git@github.com herzustellen:
ssh -vT git@github.com
ssh -vT git@github.com
Wenn Sie einen privaten Schlüssel mit einem nicht standardmäßigen Dateinamen verwenden, verwenden Sie die -i Option, um den Pfad zum Schlüssel anzugeben:
ssh -i ~/.ssh/KEY-FILE -vT git@github.com
ssh -i ~/.ssh/KEY-FILE -vT git@github.com
Sie sehen eine Ausgabe wie diese:
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).
In diesem Beispiel hat SSH keine Schlüssel gefunden.
- „-1“ am Ende der „identitiy file“-Zeilen bedeutet, dass SSH keine entsprechende Datei finden konnte.
- Die Zeilen mit „Trying private key“ zeigen an, dass keine Datei gefunden wurde.
Wenn eine Datei vorhanden wäre, würden diese Zeilen „1“ und „Offering public key“ (öffentlicher Schlüssel angeboten) lauten, wie in dieser Ausgabe:
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa
Überprüfen, ob der öffentliche Schlüssel an dein Konto angehängt ist
Sie müssen GitHub Ihren öffentlichen Schlüssel zur Verfügung stellen, um eine sichere Verbindung herzustellen.
-
Öffne das Terminal.
-
Starte den SSH-Agenten im Hintergrund.
$ eval "$(ssh-agent -s)" > Agent pid 59566 -
Suche und notiere deinen öffentlichen Schlüssel-Fingerprint.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) -
Klicke in der oberen rechten Ecke einer Seite auf GitHub auf dein Profilbild und dann auf Settings.
-
Klicke im Abschnitt „Access“ der Randleiste auf SSH and GPG keys.
-
Vergleichen Sie die Liste der SSH-Schlüssel mit der Ausgabe des
ssh-add-Befehls.
-
Öffne die Befehlszeile.
-
Starte den SSH-Agenten im Hintergrund.
$ ssh-agent -s > Agent pid 59566 -
Suche und notiere deinen öffentlichen Schlüssel-Fingerprint.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) -
Klicke in der oberen rechten Ecke einer Seite auf GitHub auf dein Profilbild und dann auf Settings.
-
Klicke im Abschnitt „Access“ der Randleiste auf SSH and GPG keys.
-
Vergleichen Sie die Liste der SSH-Schlüssel mit der Ausgabe des
ssh-add-Befehls.
-
Öffne das Terminal.
-
Starte den SSH-Agenten im Hintergrund.
$ eval "$(ssh-agent -s)" > Agent pid 59566 -
Suche und notiere deinen öffentlichen Schlüssel-Fingerprint. Bei Verwendung von OpenSSH 6.7 oder älter:
$ ssh-add -l > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)Bei Verwendung von OpenSSH 6.8 oder neuer:
$ ssh-add -l -E md5 > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA) -
Klicke in der oberen rechten Ecke einer Seite auf GitHub auf dein Profilbild und dann auf Settings.
-
Klicke im Abschnitt „Access“ der Randleiste auf SSH and GPG keys.
-
Vergleichen Sie die Liste der SSH-Schlüssel mit der Ausgabe des
ssh-add-Befehls.
Wenn Ihr öffentlicher Schlüssel in GitHub nicht angezeigt wird, müssen Sie Ihren SSH-Schlüssel zu GitHub hinzufügen, um ihn mit Ihrem Computer zu verknüpfen.
Warnung
Wenn Sie auf GitHub einen SSH-Schlüssel sehen, den Sie nicht kennen, löschen Sie ihn sofort und kontaktieren Sie uns über das GitHub Supportportal für weitere Hilfe. Ein Dir unbekannter öffentlicher Schlüssel kann ein Hinweis auf ein Sicherheitsproblem sein. Weitere Informationen finden Sie unter SSH-Schlüssel überprüfen.