Skip to main content

Generieren eines neuen SSH-Schlüssels und Hinzufügen des Schlüssels zum ssh-agent

Wenn du geprüft hast, ob SSH-Schlüssel vorhanden sind, kannst du einen neuen SSH-Schlüssel für die Authentifizierung generieren und zum SSH-Agent hinzufügen.

Informationen zu SSH-Schlüsselpassphrasen

Über SSH (Secure Shell Protocol) kannst du auf Daten in Repositorys in GitHub.com Daten in diese Repositorys schreiben. Wenn du über SSH eine Verbindung herstellst, authentifizierst du dich mit einer privaten Schlüsseldatei auf deinem lokalen Computer. Weitere Informationen findest du unter Informationen zu SSH.

Wenn du einen SSH-Schlüssel generierst, kannst du eine Passphrase hinzufügen, um ihn noch besser zu schützen. Wenn du den Schlüssel verwendest, muss du die Passphrase eingeben. Wenn dein Schlüssel eine Passphrase umfasst und du diese nicht jedes Mal eingeben möchtest, wenn du den Schlüssel verwendest, kannst du diesen dem SSH-Agent hinzufügen. Der SSH-Agent verwaltet deine SSH-Schlüssel und speichert deine Passphrase.

Wenn du noch keinen SSH-Schlüssel hast, musst du einen neuen SSH-Schlüssel generieren, der für die Authentifizierung verwendet werden soll. Wenn du nicht sicher bist, ob du bereits über einen SSH-Schlüssel verfügst, kannst du nach vorhandenen Schlüsseln suchen. Weitere Informationen findest du unter Überprüfen auf vorhandene SSH-Schlüssel.

Wenn du einen Hardwaresicherheitsschlüssel zum Authentifizieren von GitHub verwenden möchtest, musst du einen neuen SSH-Schlüssel für deinen Hardwaresicherheitsschlüssel generieren. Du musst deinen Hardwaresicherheitsschlüssel mit deinem Computer verbinden, wenn du dich mit dem Schlüsselpaar authentifizierst. Weitere Informationen findest du unter Versionshinweise zu OpenSSH 8.2.

Einen neuen SSH-Schlüssel erzeugen

Du kannst einen neuen SSH-Schlüssel auf deinem lokalen Computer generieren. Nachdem du den Schlüssel generiert hast, kannst du ihn deinem Konto auf GitHub.com hinzufügen, um die Authentifizierung für Git-Vorgänge über SSH zu aktivieren.

Hinweis: GitHub verbessert die Sicherheit, indem ältere, unsichere Schlüsseltypen am 15. März 2022 gelöscht werden.

Ab diesem Datum werden DSA-Schlüssel (ssh-dss) nicht mehr unterstützt. Du kannst deinem persönlichen Konto keine neuen DSA-Schlüssel für GitHub.com hinzufügen.

RSA-Schlüssel (ssh-rsa) mit einem valid_after vor dem 2. November 2021 können weiterhin einen Signaturalgorithmus verwenden. RSA-Schlüssel, die nach diesem Datum generiert wurden, müssen einen SHA-2-Signaturalgorithmus verwenden. Einige ältere Clients müssen möglicherweise aktualisiert werden, um SHA-2-Signaturen zu verwenden.

  1. Öffne TerminalTerminalGit Bash.

  2. Füge den folgenden Text ein, und ergänze dabei deine GitHub-E-Mail-Adresse.

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    Hinweis: Wenn du ein Legacy-System verwendest, das den Ed25519-Algorithmus nicht unterstützt, verwende:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    Dadurch wird ein neuer SSH-Schlüssel erzeugt und die angegebene E-Mail-Adresse als Kennzeichnung verwendet.

    > Generating public/private ALGORITHM key pair.

    Wenn du aufgefordert wirst, eine Datei einzugeben, in der der Schlüssel gespeichert werden soll, kannst du die EINGABETASTE drücken, um den Standarddateispeicherort zu akzeptieren. Hinweis: Wenn du zuvor SSH-Schlüssel erstellt hast, wirst du möglicherweise von ssh-keygen aufgefordert, einen anderen Schlüssel neu zu schreiben. In diesem Fall wird empfohlen, einen SSH-Schlüssel mit benutzerdefiniertem Namen zu erstellen. Gib hierzu den Standarddateispeicherort ein, und ersetze id_ssh_keyname durch deinen benutzerdefinierten Schlüsselnamen.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter]
    > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
    > Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter]
  3. Gib an der Eingabeaufforderung eine sichere Passphrase ein. Weitere Informationen findest du unter Arbeiten mit SSH-Schlüsselpassphrasen.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

Deinen SSH-Schlüssel zum SSH-Agenten hinzufügen

Bevor du dem SSH-Agent einen neuen SSH-Schlüssel hinzufügst, um deine Schlüssel zu verwalten, solltest du nach vorhandenen SSH-Schlüsseln überprüft und einen neuen SSH-Schlüssel generiert haben. Verwende beim Hinzufügen des SSH-Schlüssels zum Agent den macOS-Standardbefehl ssh-add und keine Anwendung, die von MacPorts, Homebrew oder einer anderen externen Quelle installiert wurde.

  1. Starte den SSH-Agenten im Hintergrund.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Je nach Umgebung musst du möglicherweise einen anderen Befehl verwenden. So musst du möglicherweise z. B. root-Zugriff verwenden, indem du vor dem Starten des SSH-Agent sudo -s -H ausführst, oder du musst zum Ausführen des SSH-Agent exec ssh-agent bash oder exec ssh-agent zsh verwenden.

  2. Wenn du macOS Sierra 10.12.2 oder höher verwendest, musst du die ~/.ssh/config-Datei bearbeiten, damit automatisch Schlüssel in den SSH-Agenten geladen und Passphrasen in der Schlüsselkette gespeichert werden.

    • Überprüfe zunächst, ob deine ~/.ssh/config-Datei am Standardspeicherort vorhanden ist.

      $ open ~/.ssh/config
      > The file /Users/YOU/.ssh/config does not exist.
    • Wenn die Datei nicht existiert, musst du sie erstellen.

      $ touch ~/.ssh/config
    • Öffne deine ~/.ssh/config-Datei und ändere dann die Datei, um die folgenden Zeilen zu enthalten. Wenn deine SSH-Schlüsseldatei einen anderen Namen hat als die Datei im Beispielcode, passe den Dateinamen im Code entsprechend an.

      Host *.github.com
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      Hinweise:

      • Wenn du keine Passphrase zu deinem Schlüssel hinzufügen möchtest, solltest du die UseKeychain-Zeile auslassen.

      • Wenn ein Bad configuration option: usekeychain-Fehler angezeigt wird, füge dem Abschnitt Host *.github.com der Konfiguration eine zusätzliche Zeile hinzu.

        Host *.github.com
          IgnoreUnknown UseKeychain
        
  3. Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu, und speichere deine Passphrase in der Keychain. Wenn du deinen Schlüssel unter einem anderen Namen erstellt hast oder einen vorhandenen Schlüssel hinzufügst, der einen anderen Namen aufweist, ersetze id_ed25519 im Befehl durch den Namen der Datei deines privaten Schlüssels.

    $ ssh-add --apple-use-keychain ~/.ssh/id_ed25519

    Hinweis: Die --apple-use-keychain-Option speichert die Passphrase in der Keychain für dich, wenn du einen SSH-Schlüssel zum SSH-Agent hinzufügst. Wenn du keine Passphrase zu deinem Schlüssel hinzufügen möchtest, führe den Befehl ohne die --apple-use-keychain-Option aus.

    Die Option --apple-use-keychain ist in der Standardversion von ssh-add von Apple enthalten. In MacOS-Versionen vor Monterey (12.0) wurde für die Flags --apple-use-keychain und --apple-load-keychain die Syntax -K bzw -A verwendet.

    Wenn Du die Apple-Standardversion von ssh-add nicht installiert hast, tritt möglicherweise ein Fehler auf. Weitere Informationen Fehlers findest du unter Fehler: ssh-add: illegal option -- K.

  4. Füge deinem Konto auf GitHub deinen SSH-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines neuen SSH-Schlüssels zu deinem GitHub-Konto.

Wenn du GitHub Desktop installiert hast, kannst du dies verwenden, um Repositorys zu klonen und nicht mit SSH-Schlüsseln arbeiten zu müssen.

  1. Stelle sicher, dass der SSH-Agent ausgeführt wird. Du kannst die Anleitung für „Automatisches Starten von ssh-agent“ unter Arbeiten mit SSH-Schlüsselpassphrasen verwenden oder diese Komponente manuell starten:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu. Wenn du deinen Schlüssel unter einem anderen Namen erstellt hast oder einen vorhandenen Schlüssel hinzufügst, der einen anderen Namen aufweist, ersetze id_ed25519 im Befehl durch den Namen der Datei deines privaten Schlüssels.

    $ ssh-add ~/.ssh/id_ed25519

  3. Füge deinem Konto auf GitHub deinen SSH-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines neuen SSH-Schlüssels zu deinem GitHub-Konto.

  1. Starte den SSH-Agenten im Hintergrund.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Je nach Umgebung musst du möglicherweise einen anderen Befehl verwenden. So musst du möglicherweise z. B. root-Zugriff verwenden, indem du vor dem Starten des SSH-Agent sudo -s -H ausführst, oder du musst zum Ausführen des SSH-Agent exec ssh-agent bash oder exec ssh-agent zsh verwenden.

  2. Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu. Wenn du deinen Schlüssel unter einem anderen Namen erstellt hast oder einen vorhandenen Schlüssel hinzufügst, der einen anderen Namen aufweist, ersetze id_ed25519 im Befehl durch den Namen der Datei deines privaten Schlüssels.

    $ ssh-add ~/.ssh/id_ed25519

  3. Füge deinem Konto auf GitHub deinen SSH-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines neuen SSH-Schlüssels zu deinem GitHub-Konto.

Generieren eines neuen SSH-Schlüssels für einen Hardwaresicherheitsschlüssel

Wenn du macOS oder Linux verwendest, musst du möglicherweise deinen SSH-Client aktualisieren oder einen neuen SSH-Client installieren, bevor du einen neuen SSH-Schlüssel generierst. Weitere Informationen findest du unter Fehler: Unbekannter Schlüsseltyp.

  1. Füge deinem Computer deinen Hardwaresicherheitsschlüssel hinzu.

  2. Öffne TerminalTerminalGit Bash.

  3. Füge den folgenden Text ein und ersetze ihn in der E-Mail-Adresse deines Kontos auf GitHub.

    $ ssh-keygen -t ed25519-sk -C "YOUR_EMAIL"

    Hinweis: Wenn der Befehl fehlschlägt und du den Fehler invalid format oder feature not supported, erhältst, verwende möglicherweise einen Hardwaresicherheitsschlüssel, der den Ed25519-Algorithmus nicht unterstützt. Gib stattdessen den folgenden Befehl ein.

    $ ssh-keygen -t ecdsa-sk -C "your_email@example.com"
  4. Wenn du dazu aufgefordert wirst, drücke die Schaltfläche auf deinem Hardwaresicherheitsschlüssel.

  5. Wenn du aufgefordert wirst, „Eine Datei einzugeben, in der die Taste gespeichert werden soll", drücke EINGABE, um den Standarddateispeicherort zu akzeptieren.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
    > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ed25519_sk):[Press enter]
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
  6. Wenn du aufgefordert wirst, eine Passphrase einzugeben, drücke Eingeben.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  7. Füge deinem Konto auf GitHub den SSH-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines neuen SSH-Schlüssels zu deinem GitHub-Konto.