Files
it-know-how/Linux/SSH-Schlüssel erzeugen.md
T

162 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
### 🔧 1. SSH-Schlüssel erzeugen
Öffne ein Terminal und gib ein:
```bash
ssh-keygen -t ed25519 -C "dein.name@beispiel.de"
```
- `-t ed25519`: moderner, sicherer Schlüsseltyp (alternativ: `rsa`).
- `-C`: Kommentar zur Identifikation (z. B. deine E-Mail).
**Wenn gefragt:**
- Speicherort bestätigen mit **Enter** (Standard: `~/.ssh/id_ed25519`).
- Optional ein **Passwort** setzen (empfohlen für zusätzliche Sicherheit).
---
### 📤 2. Öffentlichen Schlüssel auf den Server kopieren
Wenn du z. B. Zugriff auf `user@server.de` hast:
```bash
ssh-copy-id user@server.de
```
Falls `ssh-copy-id` nicht installiert ist, kannst du den Schlüssel auch manuell übertragen:
```bash
cat ~/.ssh/id_ed25519.pub
```
Dann den Inhalt in die Datei `~/.ssh/authorized_keys` auf dem Server einfügen.
---
### 🔐 3. Mit dem Server verbinden
Danach kannst du dich einfach per SSH einloggen:
```bash
ssh user@server.de
```
Du wirst **nicht mehr nach dem Passwort des Servers** gefragt nur ggf. nach der Passphrase deines privaten Schlüssels.
---
### 🧩 (Optional) 4. SSH-Agent verwenden
Damit du die Passphrase nicht ständig eingeben musst:
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
```
---
Wenn `git push` weiterhin nach einem Passwort fragt, liegt das fast immer daran, dass dein Repository **über HTTPS statt SSH** verbunden ist.
Lass uns das prüfen und beheben 👇
---
## 🔎 1️⃣ Prüfen, welche Remote-URL verwendet wird
Im Repository:
```bash
git remote -v
```
Wenn du etwas siehst wie:
```
https://github.com/USERNAME/REPO.git
```
➡ Dann nutzt du **HTTPS** deshalb wird ein Passwort (bzw. Token) verlangt.
Wenn dort steht:
```
git@github.com:USERNAME/REPO.git
```
➡ Das ist korrekt (SSH).
---
## 🔁 2️⃣ Remote von HTTPS auf SSH umstellen
Ersetze die URL mit der SSH-Version:
```bash
git remote set-url origin git@github.com:USERNAME/REPO.git
```
Danach nochmal testen:
```bash
git push
```
---
## 🧪 3️⃣ SSH-Verbindung separat testen
```bash
ssh -T git@github.com
```
Du solltest eine Meldung bekommen wie:
```
Hi USERNAME! You've successfully authenticated...
```
Wenn nicht, sag mir bitte die Fehlermeldung.
---
## 🔐 4️⃣ Falls SSH korrekt ist, aber trotzdem Passwort kommt
Dann prüfen:
### Läuft der SSH-Agent?
```bash
ssh-add -l
```
Wenn dort steht:
```
The agent has no identities.
```
Dann:
```bash
ssh-add ~/.ssh/id_ed25519
```
---
## 🛠 5️⃣ Debug-Modus (wenn es immer noch nicht klappt)
```bash
ssh -vT git@github.com
```
Das zeigt, welcher Key wirklich benutzt wird.
---
### 💡 90% der Fälle:
Das Repository wurde ursprünglich per HTTPS geklont.
Wenn du möchtest, kannst du mir die Ausgabe von
`git remote -v` posten dann sage ich dir exakt, was los ist.