SSH-Schlüssel zu GitHub hinzufügen

Erzeugen Sie einen Schlüssel mit ssh-keygen -t ed25519 -C "you@example.com" und kopieren Sie den Inhalt von ~/.ssh/id_ed25519.pub. Öffnen Sie bei GitHub Settings, SSH and GPG keys, New SSH key, fügen Sie ihn ein und speichern Sie. Testen Sie mit ssh -T git@github.com: Bei Erfolg erscheint Hi USERNAME! You've successfully authenticated.

Den Schlüssel lieber ohne Terminal? Wardterm erzeugt ihn und kopiert den öffentlichen Teil für Sie. Zeigen

Aktualisiert am . Die Host-Key-Fingerprints von GitHub am 2026-11-14 mit dem verglichen, was ssh-keyscan von github.com erhielt.

Einen Schlüssel erzeugen

Überspringen Sie das, wenn Sie schon einen haben, was Sie mit ls ~/.ssh/*.pub sehen.

ssh-keygen -t ed25519 -C "you@example.com"

Übernehmen Sie die Standarddatei und setzen Sie eine Passphrase. Für Windows siehe Schlüssel unter Windows erzeugen.

Unsicher, welcher Typ? Siehe SSH-Schlüssel: RSA oder ed25519.

Den öffentlichen Schlüssel kopieren

pbcopy < ~/.ssh/id_ed25519.pub     # macOS
cat ~/.ssh/id_ed25519.pub          # Linux: copy the output by hand

Unter Windows nutzen Sie Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard. Es ist eine Zeile, die mit ssh-ed25519 beginnt. Beginnt das, was Sie haben, mit -----BEGIN, ist das der private Schlüssel: Hören Sie auf und fügen Sie ihn nirgends ein.

Bei GitHub hinzufügen

  1. Klicken Sie oben rechts auf Ihr Profilbild, dann auf Settings.
  2. Klicken Sie in der Seitenleiste im Bereich Access auf SSH and GPG keys.
  3. Klicken Sie auf New SSH key.
  4. Geben Sie einen Titel, der den Rechner benennt, etwa "Personal laptop".
  5. Wählen Sie den Schlüsseltyp Authentication. Signing ist ein getrennter Verwendungszweck: Um Commits mit demselben Schlüssel zu signieren, laden Sie ihn ein zweites Mal als Signing hoch.
  6. Fügen Sie den Schlüssel ohne Zeilenumbrüche ein und klicken Sie auf Add SSH key.

Mit dem Kommandozeilenwerkzeug von GitHub, nach gh auth login:

gh ssh-key add ~/.ssh/id_ed25519.pub --title "Personal laptop"

GitHub akzeptiert keine DSA-Schlüssel mehr. Nutzt eine Organisation, der Sie angehören, SAML Single Sign-on, müssen Sie den Schlüssel auf derselben Seite eventuell zusätzlich dafür autorisieren.

Testen und den Fingerprint prüfen

ssh -T git@github.com

Beim ersten Mal fragt ssh, ob dem Host vertraut werden soll. Vergleichen Sie, was angezeigt wird, mit der von GitHub veröffentlichten Liste. Wir haben geprüft, dass diese Werte mit dem übereinstimmen, was github.com sendet:

TypSHA256-Fingerprint
Ed25519SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
ECDSASHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM
RSASHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s

GitHub kann diese ändern, maßgeblich ist also die eigene Seite von GitHub. Eine erfolgreiche Anmeldung gibt aus:

Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

Erhalten Sie stattdessen einen Fehler, siehe git@github.com: Permission denied (publickey).

Warum ssh beim ersten Mal fragt und wie Sie die Frage lesen: known_hosts und Host-Fingerprints erklärt.

Ihr Repository auf SSH umstellen

Ein Schlüssel nützt einem über HTTPS geklonten Repository nichts. Prüfen Sie es und stellen Sie bei Bedarf um:

git remote -v
git remote set-url origin git@github.com:OWNER/REPO.git

Für einen neuen Klon verwenden Sie dieselbe Form der Adresse:

git clone git@github.com:OWNER/REPO.git

Wenn Git nach der Passphrase fragt oder den falschen Schlüssel nimmt

Laden Sie den Schlüssel einmal pro Sitzung mit ssh-add ~/.ssh/id_ed25519 in den ssh-agent. Auf dem Mac kann der Schlüsselbund die Passphrase über Neustarts hinweg behalten: siehe ssh-agent und der macOS-Schlüsselbund.

Heißt Ihr Schlüssel anders, sagen Sie ssh in ~/.ssh/config, welchen es für GitHub nehmen soll:

Host github.com
    IdentityFile ~/.ssh/id_ed25519_github
    IdentitiesOnly yes

Für ein zweites GitHub-Konto auf demselben Rechner siehe mehrere GitHub-Konten mit SSH.

Wenn Port 22 blockiert ist

Manche Netzwerke blockieren ihn, was sich als Timeout zeigt. GitHub akzeptiert SSH auch auf Port 443:

ssh -T -p 443 git@ssh.github.com

Funktioniert das, machen Sie es dauerhaft in ~/.ssh/config:

Host github.com
    Hostname ssh.github.com
    Port 443
    User git

Fragen

Warum beendet sich ssh -T git@github.com mit einem Fehlercode?

Es beendet sich auch bei Erfolg mit Code 1, weil GitHub keine Shell bereitstellt. Entscheidend ist die Meldung Hi USERNAME.

Kann ich denselben Schlüssel bei zwei GitHub-Konten verwenden?

Nein. GitHub erkennt Ihr Konto am Schlüssel und weist einen bereits verwendeten Schlüssel mit Key already in use ab. Siehe die Anleitung zu mehreren GitHub-Konten.

Warum fragt Git bei jedem Push nach meiner SSH-Passphrase?

Weil der Schlüssel nicht im ssh-agent geladen ist. Führen Sie einmal pro Sitzung ssh-add ~/.ssh/id_ed25519 aus. Auf dem Mac speichert ssh-add --apple-use-keychain die Passphrase zusätzlich im Schlüsselbund.

Quellen

Mehr zu Schlüssel und Anmeldung

Alle Anleitungen