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

195 lines
5.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```
---