README.md hinzugefügt
This commit is contained in:
100
README.md
Normal file
100
README.md
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# SSH-Zertifikats-Login mit zentraler CA
|
||||||
|
|
||||||
|
Dieses Projekt ermöglicht eine einfache und sichere Anmeldung per SSH auf mehreren Servern über kurzzeitige, von einer zentralen Zertifizierungsstelle (CA) signierte SSH-Zertifikate.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Zentrale SSH CA zur Signierung temporärer SSH-Schlüssel
|
||||||
|
- Automatisches Erzeugen und Signieren von SSH-Keys
|
||||||
|
- Interaktive Auswahl der Ziel-VM, des Benutzers und der Zertifikatsgültigkeit über `gum`
|
||||||
|
- Logging aller wichtigen Aktionen (Konsole + Logdatei)
|
||||||
|
- Schutz der privaten CA-Schlüssel durch zentrale Signatur-VM
|
||||||
|
- Flexible Erweiterbarkeit
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verzeichnisstruktur
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── log/ # Logs und Logging-Script
|
||||||
|
│ ├── logging.sh
|
||||||
|
│ └── ssh-cert-login.log
|
||||||
|
├── temp_keys/ # Temporäre SSH-Schlüssel werden hier erzeugt
|
||||||
|
├── login.sh # Hauptscript für Zertifikatserstellung und SSH-Login
|
||||||
|
├── remote_sign.sh # Remote-Skript auf der CA-VM zur Signatur
|
||||||
|
├── .gitignore # Git Ignore für Logs, temporäre Keys, etc.
|
||||||
|
└── README.md # Diese Datei
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- Bash unter Linux/macOS
|
||||||
|
- `ssh` und `ssh-keygen`
|
||||||
|
- `scp` für Dateiübertragungen
|
||||||
|
- `gum` (https://github.com/charmbracelet/gum) für das interaktive Terminal-Menü
|
||||||
|
- Zugriff auf eine CA-VM mit privatem CA-Key und dem `remote_sign.sh` Script
|
||||||
|
- SSH-Key für Anmeldung an der CA-VM (`id_ca` o.ä.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. `gum` installieren (z.B. via `brew install gum` oder Snap/Paketmanager)
|
||||||
|
|
||||||
|
2. Alle Skripte und Verzeichnisse in ein Git-Repository klonen oder kopieren
|
||||||
|
|
||||||
|
3. CA-VM korrekt konfigurieren (privater CA-Key, `remote_sign.sh`)
|
||||||
|
|
||||||
|
4. `login.sh` ausführbar machen:
|
||||||
|
```bash
|
||||||
|
chmod +x login.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Log-Verzeichnis anlegen (falls nicht vorhanden):
|
||||||
|
```bash
|
||||||
|
mkdir -p log
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nutzung
|
||||||
|
|
||||||
|
Starte das Login-Skript:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./login.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
- Wähle die Ziel-VM aus der Liste
|
||||||
|
- Wähle den SSH-Benutzer (vordefiniert oder eigene Eingabe)
|
||||||
|
- Wähle die Gültigkeitsdauer des Zertifikats
|
||||||
|
- Das Skript generiert einen temporären SSH-Key, sendet den Public Key zur CA, holt das signierte Zertifikat zurück und startet die SSH-Verbindung zum Ziel
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sicherheitshinweise
|
||||||
|
|
||||||
|
- Der private CA-Schlüssel sollte ausschließlich auf der CA-VM gespeichert und geschützt werden
|
||||||
|
- Temporäre SSH-Keys sind nur kurz gültig (Standard 5 Minuten)
|
||||||
|
- Logdateien enthalten keine privaten Schlüssel, aber Pfadangaben und Benutzerinformationen – vor unberechtigtem Zugriff schützen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
MIT License (oder nach Wunsch anpassen)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kontakt
|
||||||
|
|
||||||
|
Bei Fragen oder Problemen gerne melden!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Viel Erfolg mit deinem zentralen SSH-Zertifikats-Login!**
|
||||||
Reference in New Issue
Block a user