Hallo, Entdecker! An dieser Seite wird aktiv gearbeitet, oder sie wird noch übersetzt. Die neuesten und genauesten Informationen finden Sie in unserer englischsprachigen Dokumentation.

Diese Version von GitHub Enterprise wird eingestellt am Diese Version von GitHub Enterprise wurde eingestellt am 2020-01-22. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für eine bessere Leistung, verbesserte Sicherheit und neue Features nehmen Sie ein Upgrade auf die neueste Version von GitHub Enterprise vor. Wenden Sie sich an den GitHub Enterprise-Support, um Hilfe beim Upgrade zu erhalten.

Fehler: „Permission denied (publickey)“ (Berechtigung verweigert: öffentlicher Schlüssel)

Die Fehlermeldung „Permission denied“ (Berechtigung verweigert) bedeutet, dass der Server Ihre Verbindung abgelehnt hat. Dafür kann es verschiedene Gründe geben. Die häufigsten werden nachfolgend erläutert.

Inhalt dieses Artikels

Kann ich den Befehl sudo bei Git verwenden?

Sie sollten den Befehl sudo nicht bei Git verwenden. Wenn Sie sudo aus einem sehr guten Grund verwenden müssen, stellen Sie sicher, dass Sie ihn bei jedem Befehl verwenden. (Wahrscheinlich ist es besser, su zu verwenden, um an dieser Stelle eine Shell als Root zu bekommen.) Wenn Sie SSH-Schlüssel ohne sudo erzeugen und dann versuchen, einen Befehl wie sudo git push auszuführen, verwenden Sie andere Schlüssel als die von Ihnen erzeugten.

Überprüfen, ob Sie eine Verbindung mit dem richtigen Server herstellen

Tippen ist fehleranfällig, das wissen wir alle. Achten Sie darauf, was Sie tippen. Sie können keine Verbindung mit „githib.com“ oder „guthub.com“ herstellen. In einigen Fällen kann ein Unternehmensnetzwerk auch Probleme bei der Auflösung des DNS-Eintrags verursachen.

Um sicherzustellen, dass Sie die Verbindung mit der richtigen Domain herstellen, können Sie den folgenden Befehl eingeben:

$ ssh -vT git@Hostname
> OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
> debug1: Reading configuration data /Users/you/.ssh/config
> debug1: Reading configuration data /etc/ssh_config
> debug1: Applying options for *
> debug1: Connecting to Hostname [IP ADDRESS] port 22.

Die Verbindung sollte über Port 22 hergestellt werden.

Immer den „git“-Benutzer verwenden

Alle Verbindungen, auch die zu Remote-URLs, müssen als „git“-Benutzer hergestellt werden. Wenn Sie versuchen, die Verbindung unter Ihrem GitHub Enterprise-Benutzernamen herzustellen, tritt ein Fehler auf:

$ ssh -T GITHUB-USERNAME@Hostname
> Permission denied (publickey).

Wenn Ihre Verbindung fehlgeschlagen ist und Sie eine Remote-URL mit Ihrem GitHub Enterprise-Benutzernamen verwenden, können Sie die Remote-URL für die Verwendung des „git“-Benutzers ändern.

Sie sollten Ihre Verbindung mit der folgenden Eingabe überprüfen:

$ ssh -T git@Hostname
> Hi username! You've successfully authenticated...

Sicherstellen, dass Sie einen Schlüssel haben, der verwendet wird

  1. Open TerminalTerminalGit Bash.

  2. Überprüfen Sie, dass Sie einen privaten Schlüssel erzeugt und in SSH geladen haben. Bei Verwendung von OpenSSH 6.7 oder älter:

    # Starten Sie den SSH-Agenten im Hintergrund
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

    Bei Verwendung von OpenSSH 6.8 oder neuer:

    # Starten Sie den SSH-Agenten im Hintergrund
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

Wenn Sie GitHub Desktop installiert haben, können Sie die Lösung verwenden, um Repositorys zu klonen und um nicht mit SSH-Schlüsseln zu arbeiten. Die Lösung enthält zudem das Git Bash-Tool, das die bevorzugte Art der Ausführung von git-Befehlen für Windows ist.

  1. Wenn Sie Git Bash verwenden, aktivieren Sie den SSH-Agenten:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Wenn Sie eine andere Eingabeaufforderung verwenden, beispielsweise Git für Windows, aktivieren Sie den SSH-Agenten:

    # start the ssh-agent in the background
    $ eval $(ssh-agent -s)
    > Agent pid 59566
  2. Überprüfen Sie, dass Sie einen privaten Schlüssel erzeugt und in SSH geladen haben. 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/you/.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/you/.ssh/id_rsa (RSA)
  1. Open TerminalTerminalGit Bash.

  2. Überprüfen Sie, dass Sie einen privaten Schlüssel erzeugt und in SSH geladen haben. Bei Verwendung von OpenSSH 6.7 oder älter:

    # Starten Sie den SSH-Agenten im Hintergrund
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

    Bei Verwendung von OpenSSH 6.8 oder neuer:

    # Starten Sie den SSH-Agenten im Hintergrund
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

Der Befehl ssh-add sollte eine lange Zeichenfolge an Ziffern und Buchstaben ausgeben. Wenn der Befehl nichts ausgibt, müssen Sie einen neuen SSH-Schlüssel erzeugen und ihn mit GitHub Enterprise verknüpfen.

Tip: On most systems the default private keys (~/.ssh/id_rsa, ~/.ssh/id_dsa and ~/.ssh/identity) are automatically added to the SSH authentication agent. Normalerweise müssen Sie den Befehl ssh-add path/to/key nicht ausführen, es sei denn, Sie überschreiben den Dateinamen, wenn Sie einen Schlüssel erzeugen.

Weitere Informationen abrufen

Um zu prüfen, ob der Schlüssel verwendet wird, können Sie auch versuchen, eine Verbindung zu git@[hostname] herzustellen:

$ ssh -vT git@Hostname
> ...
> 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 hatten wir keine Schlüssel, die SSH verwenden konnte. Die „-1“ am Ende der „identitiy file“-Zeilen bedeutet, dass SSH keine entsprechende Datei finden konnte. Weiter unten weisen auch die „Trying private key“-Zeilen darauf hin, dass keine Datei gefunden wurde. Wenn eine Datei vorhanden wäre, würde dort „1“ bzw. „Offering public key“ stehen:

$ ssh -vT git@Hostname
> ...
> 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 Ihr Konto angehängt ist

Sie müssen Ihren öffentlichen Schlüssel für GitHub Enterprise bereitstellen, um eine sichere Verbindung herzustellen.

  1. Öffnen Sie Terminal.

  2. Starten Sie den SSH-Agenten im Hintergrund.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  3. Suchen und notieren Sie Ihren ö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)
  4. In the upper-right corner of any page, click your profile photo, then click Settings.

    Symbol für Einstellungen auf der Benutzerleiste

  5. In the user settings sidebar, click SSH and GPG keys.

    Authentication keys

  6. Vergleichen Sie die Liste der SSH-Schlüssel mit der Ausgabe des Befehls ssh-add.

    SSH-Schlüssel-Auflistung in GitHub Enterprise

  1. Öffnen Sie die Befehlszeile.

  2. Starten Sie den SSH-Agenten im Hintergrund.

    $ ssh-agent -s
    > Agent pid 59566
  3. Suchen und notieren Sie Ihren ö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)
  4. In the upper-right corner of any page, click your profile photo, then click Settings.

    Symbol für Einstellungen auf der Benutzerleiste

  5. In the user settings sidebar, click SSH and GPG keys.

    Authentication keys

  6. Vergleichen Sie die Liste der SSH-Schlüssel mit der Ausgabe des Befehls ssh-add.

    SSH-Schlüssel-Auflistung in GitHub Enterprise

  1. Öffnen Sie Terminal.

  2. Starten Sie den SSH-Agenten im Hintergrund.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  3. Suchen und notieren Sie Ihren ö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)
  4. In the upper-right corner of any page, click your profile photo, then click Settings.

    Symbol für Einstellungen auf der Benutzerleiste

  5. In the user settings sidebar, click SSH and GPG keys.

    Authentication keys

  6. Vergleichen Sie die Liste der SSH-Schlüssel mit der Ausgabe des Befehls ssh-add.

    SSH-Schlüssel-Auflistung in GitHub Enterprise

Wenn Sie Ihren öffentlichen Schlüssel in GitHub Enterprise nicht sehen, müssen Sie Ihren SSH-Schlüssel zu GitHub Enterprise hinzufügen, um ihn mit Ihrem Computer zu verknüpfen.

Warnung: Wenn Sie einen SSH-Schlüssel sehen, der Ihnen auf GitHub Enterprise unbekannt ist, sollten Sie ihn sofort löschen und sich für weitere Anweisungen an den Ihr GitHub Enterprise-Websiteadministrator wenden. Ein Ihnen unbekannter öffentlicher Schlüssel kann ein Hinweis auf ein Sicherheitsproblem sein. Weitere Informationen finden Sie unter „SSH-Schlüssel überprüfen“.

Menschliche Unterstützung einholen

Sie können das Gesuchte nicht finden?

Kontakt