ACTA Learn
Intelligence that acts. — Lernreihe
ACTA Learn · Kurs 01

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.

⏱ ca. 45 Minuten 🪟 Windows 10/11 🔑 GitLab Stufe: Anfänger Kein Vorwissen nötig

0

Einführung & Lernziele

🎯Ziel: Du weißt, was dich erwartet und was du am Ende können wirst.

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 -T testen und Fehler deuten.
  • Ein Repository klonen und Änderungen ohne Passwort pushen.
💡 Wie dieser Kurs funktioniert: Arbeite die Kapitel in der Reihenfolge durch. Nach jedem Kapitel gibt es einen Checkpoint — hake ihn nur ab, wenn er wirklich zutrifft. Genau wie in einem DataCamp-Kurs.
1

Warum SSH-Keys?

🎯Ziel: Verstehen, warum Schlüssel besser sind als Passwörter.

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.

Dein PC
privater Schlüssel
⇄
GitLab
öffentlicher Schlüssel
Der private Schlüssel bleibt geheim auf deinem PC. Der öffentliche darf geteilt werden.

Passwort vs. SSH-Key

KriteriumPasswort / HTTPSSSH-Key
Eingabe bei jedem PushJaNein
SicherheitGutSehr hoch (Kryptografie)
Automatisierung / CIUmständlichIdeal
Empfehlung für Dev-Teams—✅ Standard
⚠️ Merke: Der private Schlüssel ist wie ein Haustürschlüssel — niemals weitergeben. Der öffentliche Schlüssel ist wie ein Schloss, das du an GitLab gibst — unbedenklich teilbar.
2

Grundbegriffe (in 60 Sekunden)

🎯Ziel: Die wichtigsten Begriffe kennen, damit nichts verwirrt.
BegriffBedeutungAnalogie
SSHSecure Shell — verschlüsselte Verbindung zu einem ServerEin sicherer Tunnel
SchlüsselpaarPrivater + öffentlicher Schlüssel, gehören zusammenSchlüssel & Schloss
ssh-keygenProgramm, das ein Schlüsselpaar erzeugtDer Schlüsselmacher
Public Key (.pub)Der teilbare Teil, kommt zu GitLabDas Schloss
Private KeyDer geheime Teil, bleibt auf deinem PCDer Schlüssel
GitLabDie Plattform, auf der dein Code liegtDas Lagerhaus
Remote / push / pullServer-Kopie, hochladen, herunterladenSenden / Empfangen
3

SSH-Schlüssel unter Windows erstellen

🎯Ziel: Ein fertiges Schlüsselpaar auf deinem Windows-Rechner erzeugen.

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
💡Erscheint eine Versions-/Hilfeausgabe, ist alles bereit. „command not found"? Dann zuerst Git for Windows installieren (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:

  1. Speicherort: Vorschlag C:\Users\<du>\.ssh\id_ed25519 — einfach Enter drücken und übernehmen.
  2. 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:

DateiRolleTeilen?
id_ed25519Privater 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.

✏️ Übung

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
✅ Checkpoint
4

Public Key in GitLab einfügen

🎯Ziel: GitLab kennt deinen öffentlichen Schlüssel und lässt dich damit rein.
  1. Melde dich bei GitLab an (z. B. git.voestalpine.com oder gitlab.com).
  2. Klicke oben rechts auf dein Avatar → Preferences (oder Edit Profile).
  3. Wähle im linken Menü SSH Keys (bei neueren Versionen: Access → SSH Keys).
  4. Füge im Feld Key deinen kopierten öffentlichen Schlüssel ein (eine Zeile, beginnt mit ssh-ed25519).
  5. Vergib optional einen Title, z. B. Windows-Laptop Linus.
  6. Setze — falls vorhanden — ein Ablaufdatum (z. B. 1 Jahr) und klicke auf Add key.
Windows PC
id_ed25519 (privat)
→
GitLab
SSH Keys → Add key
→
🔓 Zugriff
ohne Passwort
Der öffentliche Schlüssel wird gespeichert — GitLab ordnet ihn deinem Konto zu.
⚠️ Wichtig: Du fügst immer den Inhalt der .pub-Datei ein — nie die Datei ohne .pub (das wäre der private Schlüssel).
✅ Checkpoint
5

Verbindung testen

🎯Ziel: Beweisen, dass der Schlüssel funktioniert.
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!
✅ Erscheint „Welcome to GitLab", ist die Verbindung perfekt. Der Schlüssel ist korrekt hinterlegt.
⚠️ „Permission denied (publickey)"? Meist wurde der falsche Schlüssel genutzt oder nicht in GitLab gespeichert. Weiter zum Kapitel Troubleshooting.
✅ Checkpoint
6

Erstes Repo klonen & pushen

🎯Ziel: Praktisch zeigen, dass du ohne Passwort arbeiten kannst.

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
✏️ Übung

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
✅ Checkpoint
7

Cheat-Sheet (eine Seite)

🎯Ziel: Alles Wichtige auf einen Blick.

🔑 Key erzeugen & anzeigen

  • ssh-keygen -t ed25519 -C "mail"
  • cat ~/.ssh/id_ed25519.pub
  • Get-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 status
  • git 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@…
8

Troubleshooting

🎯Ziel: Typische Fehler erkennen und selbst lösen.
Meldung / SymptomUrsacheLö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!)
💡 Profi-Tipp: 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.
9

Abschluss & Merkliste

🎯Ziel: Den Erfolg bestätigen und den Abschluss wie ein DataCamp-Zertifikat abhaken.
🏁 Abschluss-Checkliste

Nächste Schritte

  • Fahre mit dem Guide „Vom Git-Commit zur Python-GUI mit GitHub Copilot" fort.
  • Richte für mehrere Accounts eine ~/.ssh/config ein.
  • Nutze SSH-Keys auch für Deployments und CI/CD.