626f4b6711ee74341747a52a73907548f0226d78
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
sshundssh-keygenscpfür Dateiübertragungengum(https://github.com/charmbracelet/gum) für das interaktive Terminal-Menü- Zugriff auf eine CA-VM mit privatem CA-Key und dem
remote_sign.shScript - SSH-Key für Anmeldung an der CA-VM (
id_cao.ä.)
Installation
-
guminstallieren (z.B. viabrew install gumoder Snap/Paketmanager) -
Alle Skripte und Verzeichnisse in ein Git-Repository klonen oder kopieren
-
CA-VM korrekt konfigurieren (privater CA-Key,
remote_sign.sh) -
login.shausführbar machen:chmod +x login.sh -
Log-Verzeichnis anlegen (falls nicht vorhanden):
mkdir -p log
Nutzung
Starte das Login-Skript:
./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!
Description
Languages
Shell
100%