diff --git a/README.md b/README.md new file mode 100644 index 0000000..2c8cf7d --- /dev/null +++ b/README.md @@ -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!** \ No newline at end of file