Artikel · · 1 Min. Lesezeit
Folge 017: Private Repos klonen: SSH-Schlüssel und GitHub
Permission denied beim Clone? Schlüsselpaar erzeugen, config anlegen, Public Key bei GitHub hinterlegen, dann klappt git clone.
Öffentliche Repos siehst du ohne Login. „Private“ (private Repositories) Projekte wie dein echtes hautuu-Repo verweigern git clone mit „Permission denied“ (Zugriff verweigert), bis GitHub deinen Rechner kennt. Grundlagen zu Clone und Push/Pull: Folge 001 und Folge 006. Dafür nutzt du einen SSH-Key statt Passwort in der URL.
Ordner .ssh
Im Home-Verzeichnis deines Rechners liegt (oft versteckt) .ssh. Im Dateimanager: versteckte Dateien anzeigen (z. B. Strg+H). Im Terminal:
cd ~/.ssh
pwd
Tilde ~ steht für dein Home (/home/deinuser unter Linux, ähnlich auf dem Mac).
Schlüsselpaar erzeugen
Mit der CLI ssh-keygen erzeugst du ein Schlüsselpaar:
ssh-keygen -t ed25519 -C "deine@email.de"
Dateiname z. B. nach GitHub-Benutzer, damit mehrere Keys unterscheidbar sind. „Passphrase“ (Passwort für den Schlüssel) optional (leer = weniger Tipparbeit, aber der private Key ist dann wie ein offenes Passwort auf der Platte).
Ergebnis: privater Key (niemals teilen, nicht committen) und öffentlicher Key (.pub). Der Public Key verschlüsselt nur für dich; entschlüsseln kann nur der Private Key.
config für github.com
In ~/.ssh/config (Datei mit touch config anlegen):
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/DEIN_KEYNAME
IdentityFile ohne .pub, nur der private Key-Pfad.
Key bei GitHub
Profilfoto → „Settings“ (Einstellungen) auf GitHub → links „SSH and GPG keys“ (SSH- und GPG-Schlüssel) → „New SSH key“ (neuer SSH-Schlüssel). „Title“ (Titel) z. B. „Lab-Test“, „Key“ (Schlüsselfeld) = kompletter Inhalt der .pub-Datei (beginnt oft mit ssh-ed25519). Private Keys beginnen mit BEGIN OPENSSH PRIVATE KEY, die gehören nicht nach GitHub.
Test:
ssh -T git@github.com
Erfolgsmeldung mit deinem Benutzernamen und Repository, dann:
git clone git@github.com:platomat/hautoo.git
platomat ist der Benutzer- oder Organisationsname auf GitHub, hautoo der Name des Repositories. Ersetze beides durch deine eigenen Werte.
Wichtig: Private Keys nie in Videos, Screenshots oder öffentliche Repos. Test-Keys nach Demos löschen oder rotieren.
ssh-agent
Manchmal meldet Cursor, dass der Key noch nicht geladen ist. Dann Key zum ssh-agent hinzufügen (je nach System ssh-add ~/.ssh/DEIN_KEYNAME). Danach sollte Clone und Cursor-Zugriff konsistent sein.