adminslog/dokus/git/git-ssh-remote.md

5.5 KiB
Raw Blame History

SSH-Zugriff auf Git-Repository in WSL einrichten

Diese Anleitung beschreibt, wie man innerhalb von WSL (z.B. Ubuntu) ein Git-Repository per SSH nutzen kann, z.B. bei einem selbst gehosteten Gitea-Server auf dns.lan mit Port 2222.


🔧 Voraussetzungen

  • WSL ist eingerichtet (z.B. Ubuntu)
  • Ein Git-Server ist erreichbar (z.B. git@dns.lan:2222)
  • Du hast bereits Zugriff über Windows (z.B. via PowerShell)
  • OpenSSH ist in der WSL-Distribution installiert
  • Wenn Du noch keinen Key hast oder einen neuen einrichten möchtest, gibt es unten unter 🔑 SSH-Key unter WSL erzeugen nochmal eine Auffrischung.

🧱 Schritt 1: SSH-Verzeichnis in WSL anlegen

mkdir -p ~/.ssh
chmod 700 ~/.ssh

🗝️ Schritt 2: SSH-Schlüssel aus Windows in WSL übernehmen

Falls du in Windows bereits einen Schlüssel hast, z.B. C:\Users\NAME\.ssh\id_ed25519, kopiere ihn:

cp /mnt/c/Users/NAME/.ssh/id_ed25519 ~/.ssh/
cp /mnt/c/Users/NAME/.ssh/id_ed25519.pub ~/.ssh/
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

🔁 Ersetze NAME mit deinem Windows-Benutzernamen.


⚙️ Schritt 3: SSH-Konfiguration (optional, empfohlen)

Erstelle (oder bearbeite) die Datei ~/.ssh/config:

nano ~/.ssh/config

Füge ein:

Host gitea
    HostName dns.lan
    Port 2222
    User git
    IdentityFile ~/.ssh/id_ed25519

→ Damit kannst du den Hostname gitea als Alias verwenden.


🧪 Schritt 4: Verbindung testen

ssh -T gitea

Erwartete Ausgabe:

Hi there, realAscot! You've successfully authenticated...

🐙 Schritt 5: Git-Remote setzen oder klonen

Bestehendes Repo umstellen

git remote set-url origin gitea:realAscot/mein-projekt.git

Neues Repo klonen

git clone gitea:realAscot/mein-projekt.git

🛡️ Hinweis: Keine Shell-Zugänge über Git-SSH

Wenn du folgende Meldung siehst:

You've successfully authenticated, but Gitea does not provide shell access.

→ Das ist normal und kein Fehler Push/Pull funktioniert trotzdem.


Fertig

Du kannst jetzt in WSL wie gewohnt per SSH arbeiten:

git pull
git push

🔁 Optional: Globale Git-Konfiguration absichern

git config --global core.autocrlf input
git config --global core.eol lf

Damit vermeidest du Konflikte durch Windows-Zeilenenden. Hat mit dem SSH Key jetzt nichts zu tun, aber ein kleiner Tipp nebenbei um bekannte Fehler zu vermeiden.


🔑 SSH-Key unter WSL erzeugen

Hier ist eine kompakte Anleitung in Markdown, wie du unter WSL (z.B. Ubuntu) einen SSH-Key erzeugst und die nötigen Tools installierst, um z.B. Gitea-Zugriff zu ermöglichen.

🛠️ Voraussetzungen installieren

sudo apt update
sudo apt install -y openssh-client

🔐 SSH-Key erzeugen

ssh-keygen -t ed25519 -C "dein.name@example.com" -f ~/.ssh/id_ed25519_gitea

Der Parameter -f gibt den Pfad und Namen des neuen Keys an. Wenn man diesen weglässt, überschreibst Du Dir eventuell einen schon vorhandenen Key den Du vielleicht für etwas anderes nutzt! Du wirst dann aber je nach Version nach einem Pfad gefragt. Besser direkt angeben.

  • Erklärung:

    • -t ed25519: moderner, sicherer Algorithmus
    • -C: Kommentar (z.B. Mailadresse oder Systembeschreibung)

⌨️ Bei der Abfrage:

  • Dateipfad: einfach Enter drücken für Standard (~/.ssh/id_ed25519_gitea)
  • Passphrase: optional, aber empfohlen (für zusätzliche Sicherheit)

🔍 Public Key anzeigen

cat ~/.ssh/id_ed25519_gitea.pub

→ Diesen Schlüssel dann in Gitea unter „SSH-Schlüssel“ einfügen.

Optional: SSH-Agent starten & Schlüssel hinzufügen

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_gitea