SSH-Keys unter Windows erstellen und in GitLab hinterlegen
Ein kompakter, praktischer Kurs im Stil eines kurzen DataCamp-Kurses: kleine Kapitel, jedes mit Ziel, Schritten, Übung und Checkpoint. Am Ende verbindest du deinen Windows-Rechner sicher über SSH mit GitLab — ohne Passwort, mit Schlüssel.
Einführung & Lernziele
Dieser Kurs bringt dir bei, wie du dich von einem Windows-Rechner sicher mit GitLab verbindest — mit einem SSH-Schlüssel statt Passwort-Eingabe bei jedem Push. Das ist der Standard in professionellen Entwicklerteams.
Was du nach diesem Kurs kannst
- Einen SSH-Schlüssel unter Windows erzeugen (mit
ssh-keygen). - Den öffentlichen Schlüssel finden und korrekt kopieren.
- Den Schlüssel in GitLab unter Settings → SSH Keys hinterlegen.
- Die Verbindung mit
ssh -Ttesten und Fehler deuten. - Ein Repository klonen und Änderungen ohne Passwort pushen.
Warum SSH-Keys?
Bei https://-Zugriff fragt GitLab bei jeder Aktion nach Benutzername und
Passwort (oder Token). Bei git@-Zugriff weist sich dein Rechner über einen
Schlüssel aus — du wirst nicht mehr gefragt.
privater Schlüssel
öffentlicher Schlüssel
Passwort vs. SSH-Key
| Kriterium | Passwort / HTTPS | SSH-Key |
|---|---|---|
| Eingabe bei jedem Push | Ja | Nein |
| Sicherheit | Gut | Sehr hoch (Kryptografie) |
| Automatisierung / CI | Umständlich | Ideal |
| Empfehlung für Dev-Teams | — | ✅ Standard |
Grundbegriffe (in 60 Sekunden)
| Begriff | Bedeutung | Analogie |
|---|---|---|
| SSH | Secure Shell — verschlüsselte Verbindung zu einem Server | Ein sicherer Tunnel |
| Schlüsselpaar | Privater + öffentlicher Schlüssel, gehören zusammen | Schlüssel & Schloss |
| ssh-keygen | Programm, das ein Schlüsselpaar erzeugt | Der Schlüsselmacher |
Public Key (.pub) | Der teilbare Teil, kommt zu GitLab | Das Schloss |
| Private Key | Der geheime Teil, bleibt auf deinem PC | Der Schlüssel |
| GitLab | Die Plattform, auf der dein Code liegt | Das Lagerhaus |
| Remote / push / pull | Server-Kopie, hochladen, herunterladen | Senden / Empfangen |
SSH-Schlüssel unter Windows erstellen
3.1 Terminal öffnen
Windows bringt SSH mit. Öffne PowerShell (oder Windows Terminal): Start → „PowerShell" tippen → Enter. Alternativ nutzt du die Git Bash, die mit Git für Windows installiert wird.
Prüfe kurz, ob ssh-keygen verfügbar ist:
ssh-keygen --help
git-scm.com) und die Git Bash verwenden.3.2 Schlüsselpaar erzeugen
Empfohlen ist der moderne Ed25519-Algorithmus (kurz, schnell, sicher):
ssh-keygen -t ed25519 -C "dein.name@firma.com"
Du wirst gefragt:
- Speicherort: Vorschlag
C:\Users\<du>\.ssh\id_ed25519— einfach Enter drücken und übernehmen. - Passphrase: Optional. Leer lassen (2× Enter) = kein Passwort. Eine Passphrase = zusätzliche Sicherheit, muss aber bei jeder Nutzung eingegeben werden.
Danach liegen zwei Dateien im Ordner .ssh:
| Datei | Rolle | Teilen? |
|---|---|---|
id_ed25519 | Privater Schlüssel | ❌ Niemals |
id_ed25519.pub | Öffentlicher Schlüssel | ✅ Für GitLab |
3.3 Öffentlichen Schlüssel anzeigen
Gib den Inhalt der .pub-Datei aus:
# PowerShell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
# Git Bash
cat ~/.ssh/id_ed25519.pub
Du erhältst eine Zeile, die mit ssh-ed25519 beginnt und mit
deinem Kommentar endet. Kopiere alles ab ssh-ed25519 bis zum Ende.
Erzeuge dein Schlüsselpaar und kopiere den öffentlichen Schlüssel in die Zwischenablage. Unter PowerShell geht das direkt so:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
Public Key in GitLab einfügen
- Melde dich bei GitLab an (z. B.
git.voestalpine.comodergitlab.com). - Klicke oben rechts auf dein Avatar → Preferences (oder Edit Profile).
- Wähle im linken Menü SSH Keys (bei neueren Versionen: Access → SSH Keys).
- Füge im Feld Key deinen kopierten öffentlichen Schlüssel ein (eine Zeile, beginnt mit
ssh-ed25519). - Vergib optional einen Title, z. B. Windows-Laptop Linus.
- Setze — falls vorhanden — ein Ablaufdatum (z. B. 1 Jahr) und klicke auf Add key.
id_ed25519 (privat)
SSH Keys → Add key
ohne Passwort
.pub-Datei ein —
nie die Datei ohne .pub (das wäre der private Schlüssel).
Verbindung testen
ssh -T git@git.voestalpine.com
Beim ersten Mal fragt SSH, ob du dem Server „vertraust". Bestätige mit yes.
Danach sollte eine Begrüßung erscheinen wie:
Welcome to GitLab, @dein-username!
Erstes Repo klonen & pushen
6.1 Klonen (SSH-URL verwenden)
Kopiere auf der GitLab-Projektseite die SSH-URL (sie beginnt mit
git@…, nicht mit https://) und klone sie:
git clone git@git.voestalpine.com:gruppe/projekt.git
cd projekt
6.2 Ändern → committen → pushen
Die Grundschleife — genau wie im großen Git-Copilot-Guide:
# 1. Was hat sich geändert?
git status
# 2. Änderungen vormerken
git add .
# 3. Commit mit Nachricht
git commit -m "docs: erste Notiz hinzugefügt"
# 4. Zum Server hochladen — OHNE Passwortabfrage
git push origin main
Erstelle eine Datei notiz.txt, committe und pushe sie. Wenn keine
Passwortabfrage kommt, hat der SSH-Key alles richtig gemacht.
echo "Hallo GitLab via SSH" > notiz.txt
git add notiz.txt
git commit -m "feat: erste Datei über SSH gepusht"
git push
Cheat-Sheet (eine Seite)
🔑 Key erzeugen & anzeigen
ssh-keygen -t ed25519 -C "mail"cat ~/.ssh/id_ed25519.pubGet-Content $env:USERPROFILE\.ssh\id_ed25519.pub… | Set-Clipboard(PowerShell)
🌐 Verbindung testen
ssh -T git@git.voestalpine.com- Erwartung: „Welcome to GitLab, @user"
- Serverliste:
~/.ssh/known_hosts
📦 Git-Grundschleife
git clone git@…git statusgit add .git commit -m "…"git push
🛠 Nützlich
- Schlüssel anzeigen:
ssh-add -l - Debug:
ssh -vT git@… - Config:
~/.ssh/config - Anderer Key:
ssh -i keyfile git@…
Troubleshooting
| Meldung / Symptom | Ursache | Lösung |
|---|---|---|
Permission denied (publickey) |
Key nicht in GitLab oder falscher Key | Public Key erneut in GitLab prüfen; mit ssh -vT den genutzten Key sehen |
| „command not found: ssh-keygen" | Kein SSH-Client / alte Windows-Version | Git for Windows installieren und Git Bash nutzen |
| Immer noch Passwortabfrage | HTTPS-URL statt SSH-URL geklont | Remote umstellen: git remote set-url origin git@… |
| Falscher Account angemeldet | Mehrere Schlüssel/Identitäten | In ~/.ssh/config Host & IdentityFile festlegen |
| „Host key verification failed" | Server-Schlüssel unbekannt | Mit yes bestätigen (nur bei vertrauenswürdigem Host!) |
ssh -vT git@git.voestalpine.com zeigt jeden Schritt mit.
Suche in der Ausgabe nach Offering public key — dort steht, welchen Schlüssel dein
Rechner anbietet.
Abschluss & Merkliste
Nächste Schritte
- Fahre mit dem Guide „Vom Git-Commit zur Python-GUI mit GitHub Copilot" fort.
- Richte für mehrere Accounts eine
~/.ssh/configein. - Nutze SSH-Keys auch für Deployments und CI/CD.