Einen GitHub-SSH-Schlüssel erzeugen
Erstelle einen Ed25519-SSH-Schlüssel und verbinde ihn mit deinem GitHub-Konto.
Mit SSH-Schlüsseln kannst du über SSH pushen und pullen, ohne jedes Mal ein Passwort einzugeben. Unten erstellst du einen Schlüssel namens github und verbindest ihn mit deinem Konto – oder schnapp dir am Ende das fertige Skript.
Bleibt in deinem Browser – sie füllt nur die Befehle unten aus, damit du sie direkt kopieren kannst.
SSH installieren (falls es fehlt)
- 1
Prüfe zuerst, ob SSH überhaupt vorhanden ist – ssh -V gibt die OpenSSH-Version aus. Erhältst du eine, springe zum nächsten Abschnitt; mach hier nur weiter, wenn „command not found“ erscheint.
ssh -V - 2
Debian/Ubuntu: Paketliste aktualisieren und den OpenSSH-Client installieren.
sudo apt update && sudo apt install -y openssh-client - 3
Fedora/RHEL nutzen stattdessen dnf. (macOS und Windows 10+ bringen SSH bereits mit, du kannst das überspringen.)
sudo dnf install -y openssh-clients
Schlüssel erstellen & verbinden
- 1
Beginne in deinem SSH-Ordner. Die ~ (Tilde) ist die Abkürzung für dein Home-Verzeichnis, also bedeutet ~/.ssh genau /home/<dein-benutzername>/.ssh – dort bewahrt SSH die Schlüssel auf. mkdir -p legt den Ordner an, falls er noch nicht existiert.
mkdir -p ~/.ssh && cd ~/.ssh - 2
Liste den Ordner auf, damit du keinen vorhandenen Schlüssel überschreibst. Tauchen github und github.pub (oder id_ed25519) auf, existiert bereits ein Schlüssel mit diesem Namen.
ls -al ~/.ssh - 3
Erzeuge einen Ed25519-Schlüssel. -C versieht ihn mit deiner GitHub-E-Mail, und -f github benennt die Dateien github (privat) und github.pub (öffentlich) direkt in ~/.ssh statt des Standardnamens id_ed25519. Lieber per Abfrage? Führe ssh-keygen -t ed25519 aus und tippe github, wenn nach „Enter file in which to save the key“ gefragt wird. Vergib eine Passphrase oder drücke Enter zum Überspringen.
ssh-keygen -t ed25519 -C "your_email@example.com" -f github - 4
Sag SSH, dass es diesen Schlüssel für GitHub verwenden soll. Hänge einen Host-Block an ~/.ssh/config an, damit github.com über IdentityFile deinem neuen Schlüssel zugeordnet wird – dann nutzen ssh und git ihn automatisch, ganz ohne ssh-agent. Der Block unten legt ~/.ssh/config an, falls es noch nicht existiert, und IdentitiesOnly yes sorgt dafür, dass SSH nur diesen Schlüssel anbietet.
cat >> ~/.ssh/config <<'EOF' Host github.com HostName github.com User git IdentityFile ~/.ssh/github IdentitiesOnly yes EOF - 5
Gib den öffentlichen Schlüssel aus und kopiere die ganze Zeile, die mit ssh-ed25519 beginnt – ohne zusätzliche Leerzeichen oder Zeilenumbrüche. (macOS: pbcopy < ~/.ssh/github.pub. Linux: xclip -sel clip < ~/.ssh/github.pub.)
cat ~/.ssh/github.pub - 6
Öffne auf GitHub dein Konto → Settings → SSH and GPG keys → New SSH key. Vergib einen Titel (z. B. den Namen deines Rechners), füge den Schlüssel in das Feld „Key“ ein und klicke auf Add SSH key.
- 7
Teste die Verbindung – du solltest „Hi <dein-benutzername>! You've successfully authenticated…“ sehen. Beim ersten Mal tippe yes, um GitHubs Host zu vertrauen.
ssh -T git@github.com - 8
Lieber in einem Rutsch? Speichere den Block unten als github-key-generation.sh, ändere die E-Mail und führe dann bash github-key-generation.sh aus. Es erledigt die Schritte 1–5 und gibt den öffentlichen Schlüssel aus, den du in Schritt 6 einfügst.
#!/usr/bin/env bash # github-key-generation.sh — create an Ed25519 key named "github" and point GitHub at it. set -euo pipefail EMAIL="your_email@example.com" # change to your GitHub email KEY="$HOME/.ssh/github" mkdir -p "$HOME/.ssh" ssh-keygen -t ed25519 -C "$EMAIL" -f "$KEY" # Point github.com at the new key (only if it is not already configured). if ! grep -q "^Host github.com$" "$HOME/.ssh/config" 2>/dev/null; then cat >> "$HOME/.ssh/config" <<EOF Host github.com HostName github.com User git IdentityFile $KEY IdentitiesOnly yes EOF fi echo echo "Public key — paste this into GitHub → Settings → SSH and GPG keys → New SSH key:" cat "$KEY.pub"
