Informationen zu SSH-Schlüsselpassphrasen
Sie können auf Daten in Repositorys auf GitHub mit SSH (Secure Shell Protocol) zugreifen und schreiben. Wenn du über SSH eine Verbindung herstellst, authentifizierst du dich mit einer privaten Schlüsseldatei auf deinem lokalen Computer. Weitere Informationen finden Sie unter [AUTOTITLE](/authentication/connecting-to-github-with-ssh/about-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 finden Sie unter Auf vorhandene SSH-Schlüssel prüfen.
Wenn Sie einen Hardwaresicherheitsschlüssel für die Authentifizierung GitHubverwenden möchten, müssen Sie einen neuen SSH-Schlüssel für Ihren 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 Sie den Schlüssel generiert haben, können Sie Ihrem Konto Ihre GitHub Enterprise Server-Instance den öffentlichen Schlüssel hinzufügen, um die Authentifizierung für Git-Vorgänge über SSH zu aktivieren.
Wenn Sie ein Websiteadministrator sind deine GitHub Enterprise Server-Instanz, können Sie denselben Schlüssel verwenden, um sich selbst administrativen SSH-Zugriff auf die Instanz zu gewähren. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.
-
Öffne TerminalTerminalGit Bash.
-
Fügen Sie den folgenden Text ein, und ersetzen Sie die im Beispiel verwendete E-Mail durch Ihre GitHub E-Mail-Adresse.
ssh-keygen -t ed25519 -C "your_email@example.com"Hinweis
Wenn du ein Legacysystem 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_ALGORITHM durch deinen benutzerdefinierten Schlüsselnamen.
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]> Enter 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/id_ALGORITHM):[Press enter] -
Gib an der Eingabeaufforderung eine sichere Passphrase ein. Weitere Informationen finden Sie unter Arbeiten mit SSH-Schlüssel-Passphrasen.
> 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.
-
Starte den SSH-Agenten im Hintergrund.
$ eval "$(ssh-agent -s)" > Agent pid 59566Je 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 -Hausführst, oder du musst zum Ausführen des SSH-Agentexec ssh-agent bashoderexec ssh-agent zshverwenden. -
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 Ihre SSH-Schlüsseldatei einen anderen Namen oder Pfad als im Beispielcode hat, passen Sie den Dateinamen oder Pfad entsprechend Ihrem aktuellen Setup an.Text Host HOSTNAME AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
Host HOSTNAME AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519Hinweis
- 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 AbschnittHost *.HOSTNAMEder Konfiguration eine zusätzliche Zeile hinzu.
Text Host HOSTNAME IgnoreUnknown UseKeychain
Host HOSTNAME IgnoreUnknown UseKeychain - Wenn du keine Passphrase zu deinem Schlüssel hinzufügen möchtest, solltest du die
-
-
Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu, und speichere deine Passphrase in der Keychain. Wenn Sie Ihren Schlüssel mit einem anderen Namen erstellt haben oder wenn Sie einen vorhandenen Schlüssel mit einem anderen Namen hinzufügen, ersetzen Sie id_ed25519 im Befehl durch den Namen Ihrer privaten Schlüsseldatei.
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Hinweis
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-keychainist in der Standardversion vonssh-addvon Apple enthalten. In macOS-Versionen vor Monterey (12.0) wurde für die Flags--apple-use-keychainund--apple-load-keychaindie Syntax-Kbzw-Averwendet.Wenn Du die Apple-Standardversion von
ssh-addnicht installiert hast, tritt möglicherweise ein Fehler auf. Weitere Informationen finden Sie unter Fehler: ssh-add: unrechtmäßige Option – apple-use-keychain.Wenn du weiterhin zur Eingabe deiner Passphrase aufgefordert wirst, musst du den Befehl möglicherweise in deiner Datei
~/.zshrc(bzw. für die Bash deiner Datei~/.bashrc) hinzufügen. -
Füge deinem Konto auf GitHub den öffentlichen SSH-Schlüssel hinzu. Weitere Informationen finden Sie unter Hinzufügen eines neuen SSH-Schlüssels zu Ihrem 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.
-
Stellen Sie in einem neuen PowerShell-Fenster mit Administratorrechten sicher, dass der ssh-Agent ausgeführt wird. Du kannst die Anweisungen zum automatischen Starten des SSH-Agents unter Arbeiten mit SSH-Schlüssel-Passphrasen verwenden, oder starte diesen manuell:
# start the ssh-agent in the background Get-Service -Name ssh-agent | Set-Service -StartupType Manual Start-Service ssh-agent -
Fügen Sie in einem Terminalfenster ohne höhere Rechte Ihren privaten SSH-Schlüssel zum ssh-agent hinzu. Wenn Sie Ihren Schlüssel mit einem anderen Namen erstellt haben oder wenn Sie einen vorhandenen Schlüssel mit einem anderen Namen hinzufügen, ersetzen Sie id_ed25519 im Befehl durch den Namen Ihrer privaten Schlüsseldatei.
ssh-add c:/Users/YOU/.ssh/id_ed25519 -
Füge deinem Konto auf GitHub den öffentlichen SSH-Schlüssel hinzu. Weitere Informationen finden Sie unter Hinzufügen eines neuen SSH-Schlüssels zu Ihrem GitHub Konto.
Problembehandlung bei SSH-Agent-Konflikten in Windows
In Windows Umgebungen können die native Windows OpenSSH-Implementierung und die in Git für Windows enthaltene Implementierung (basierend auf MSYS2/Bash) koexistieren.
Wenn Sie Ihre Passphrasen im Windows-Agent mithilfe von PowerShell konfigurieren und speichern, fordert Git Sie möglicherweise während Vorgängen wie
git pushweiterhin zur Eingabe Ihrer Passphrase auf. Dies kann passieren, wenn Git für Windows seine gebündeltessh.exe(von MSYS2) anstelle des Windows System OpenSSH-Clients verwendet und daher nicht mit dem Windowsssh-agent-Dienst sprechen kann.Um sicherzustellen, dass Git den Agent verwendet, in dem Sie Ihre Anmeldeinformationen gespeichert haben, erzwingen Sie, dass Git die SSH-Binärdatei des Systems verwendet, indem Sie Folgendes ausführen:
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
-
Starte den SSH-Agenten im Hintergrund.
$ eval "$(ssh-agent -s)" > Agent pid 59566Je 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 -Hausführst, oder du musst zum Ausführen des SSH-Agentexec ssh-agent bashoderexec ssh-agent zshverwenden. -
Füge deinen privaten SSH-Schlüssel zum SSH-Agenten hinzu.
Wenn Sie Ihren Schlüssel mit einem anderen Namen erstellt haben oder wenn Sie einen vorhandenen Schlüssel mit einem anderen Namen hinzufügen, ersetzen Sie id_ed25519 im Befehl durch den Namen Ihrer privaten Schlüsseldatei.
ssh-add ~/.ssh/id_ed25519 -
Füge deinem Konto auf GitHub den öffentlichen SSH-Schlüssel hinzu. Weitere Informationen finden Sie unter Hinzufügen eines neuen SSH-Schlüssels zu Ihrem 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 finden Sie unter Fehler: Unbekannter Schlüsseltyp.
-
Füge deinem Computer deinen Hardwaresicherheitsschlüssel hinzu.
-
Öffne TerminalTerminalGit Bash.
-
Fügen Sie den folgenden Text ein, und ersetzen Sie die E-Mail-Adresse im Beispiel durch die E-Mail-Adresse, die Ihrem GitHub Konto zugeordnet ist.
ssh-keygen -t ed25519-sk -C "your_email@example.com"ssh-keygen -t ed25519-sk -C "your_email@example.com"ssh-keygen -t ed25519-sk -C "your_email@example.com"Hinweis
Wenn der Befehl fehlschlägt und du den Fehler
invalid formatoderfeature not supported,erhältst, verwendest du 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" -
Wenn du dazu aufgefordert wirst, drücke die Schaltfläche auf deinem Hardwaresicherheitsschlüssel.
-
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] -
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] -
Füge deinem Konto auf GitHub den öffentlichen SSH-Schlüssel hinzu. Weitere Informationen finden Sie unter Hinzufügen eines neuen SSH-Schlüssels zu Ihrem GitHub Konto.
Weiterführende Lektüre
-
[AUTOTITLE](/organizations/managing-programmatic-access-to-your-organization/github-credential-types)