Files
ssh-cert-login/README.md
2025-07-03 11:01:55 +00:00

2.7 KiB
Raw Blame History

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!