2025-07-03 12:14:05 +02:00
2025-07-03 21:05:59 +02:00
2025-07-03 12:11:06 +02:00
2025-07-03 12:11:06 +02:00
2025-07-03 12:11:06 +02:00
2025-07-03 11:01:55 +00:00

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:

    chmod +x login.sh
    
  5. 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
ssh-Anmeldungen mit kurzlebigen zertifizierten Publickeys, mit gum
Readme 106 KiB
Languages
Shell 100%