# 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!**