195 lines
5.3 KiB
Markdown
195 lines
5.3 KiB
Markdown
# 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
|
||
```
|
||
|
||
---
|