# 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`. - [SSH-Zugriff auf Git-Repository in WSL einrichten](#ssh-zugriff-auf-git-repository-in-wsl-einrichten) - [🔧 Voraussetzungen](#-voraussetzungen) - [🧱 Schritt 1: SSH-Verzeichnis in WSL anlegen](#-schritt-1-ssh-verzeichnis-in-wsl-anlegen) - [🗝️ Schritt 2: SSH-Schlüssel aus Windows in WSL übernehmen](#️-schritt-2-ssh-schlüssel-aus-windows-in-wsl-übernehmen) - [⚙️ Schritt 3: SSH-Konfiguration (optional, empfohlen)](#️-schritt-3-ssh-konfiguration-optional-empfohlen) - [🧪 Schritt 4: Verbindung testen](#-schritt-4-verbindung-testen) - [🐙 Schritt 5: Git-Remote setzen oder klonen](#-schritt-5-git-remote-setzen-oder-klonen) - [✅ Bestehendes Repo umstellen](#-bestehendes-repo-umstellen) - [✅ Neues Repo klonen](#-neues-repo-klonen) - [🛡️ Hinweis: Keine Shell-Zugänge über Git-SSH](#️-hinweis-keine-shell-zugänge-über-git-ssh) - [✅ Fertig](#-fertig) - [🔁 Optional: Globale Git-Konfiguration absichern](#-optional-globale-git-konfiguration-absichern) - [🔑 SSH-Key unter WSL erzeugen](#-ssh-key-unter-wsl-erzeugen) - [🛠️ Voraussetzungen installieren](#️-voraussetzungen-installieren) - [🔐 SSH-Key erzeugen](#-ssh-key-erzeugen) - [⌨️ Bei der Abfrage:](#️-bei-der-abfrage) - [🔍 Public Key anzeigen](#-public-key-anzeigen) - [✅ Optional: SSH-Agent starten \& Schlüssel hinzufügen](#-optional-ssh-agent-starten--schlüssel-hinzufügen) --- ## 🔧 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](#-ssh-key-unter-wsl-erzeugen) nochmal eine Auffrischung. --- ## 🧱 Schritt 1: SSH-Verzeichnis in WSL anlegen ```bash 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: ```bash 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`: ```bash nano ~/.ssh/config ``` Füge ein: ```ssh 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 ```bash ssh -T gitea ``` Erwartete Ausgabe: ```text Hi there, realAscot! You've successfully authenticated... ``` --- ## 🐙 Schritt 5: Git-Remote setzen oder klonen ### ✅ Bestehendes Repo umstellen ```bash git remote set-url origin gitea:realAscot/mein-projekt.git ``` ### ✅ Neues Repo klonen ```bash git clone gitea:realAscot/mein-projekt.git ``` --- ## 🛡️ Hinweis: Keine Shell-Zugänge über Git-SSH Wenn du folgende Meldung siehst: ```text 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: ```bash git pull git push ``` --- ## 🔁 Optional: Globale Git-Konfiguration absichern ```bash 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 ```bash sudo apt update sudo apt install -y openssh-client ``` ### 🔐 SSH-Key erzeugen ```bash 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 ```bash 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 ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519_gitea ``` ---