Files
ssh-cert-auth/README.md
2025-07-02 11:03:50 +00:00

1.7 KiB
Raw Blame History

SSH-Zertifikatsbasierter Login mit temporären Benutzer-Zertifikaten

Dieses Repository enthält ein Bash-basiertes System zur Nutzung von SSH-Zertifikaten für den Login auf Zielsysteme. Ein zentraler Zertifizierungsserver (CA-VM) signiert temporäre SSH-Schlüssel, die anschließend zum kurzzeitigen Login verwendet werden.

Features

  • Automatisches Erzeugen eines temporären SSH-Keypairs
  • Zertifizierung des Public Keys über zentrale CA (Zertifikatslaufzeit konfigurierbar)
  • Automatischer Login auf Ziel-VM mit dem zertifizierten Key
  • Optionale Unterstützung für agent-forwarding und Passwort-lose Nutzung
  • Sicherheit durch kurze Zertifikatsgültigkeit (z.B. 5 Minuten)

📁 Dateien

get_cert_and_connect.sh

Das Hauptskript, das:

  1. ein temporäres SSH-Schlüsselpaar erzeugt
  2. den Public Key zur CA überträgt
  3. dort signieren lässt
  4. das signierte Zertifikat abruft
  5. sich mit dem temporären Schlüssel+Zertifikat auf die Ziel-VM verbindet

remote_sign.sh

Wird auf der CA-VM abgelegt. Dieses Skript signiert einen übergebenen Public Key mit dem CA-Schlüssel für einen bestimmten Nutzer und eine begrenzte Zeitspanne.


⚙️ Voraussetzungen

Auf der CA-VM:

  • Der CA-Key (ca_key) befindet sich auf der CA-VM unter /home/alf/ca_key
  • Die Datei remote_sign.sh ist dort vorhanden und ausführbar
  • Optional: SSH-Agent mit geladener Passphrase (oder Passphrase entfernen)

Auf dem Client (Rechner 1):

  • SSH-Zugriff auf die CA-VM (z.B. ssh alf@ca-vm)
  • SSH-Zugriff auf das Zielsystem
  • scp, ssh, ssh-keygen verfügbar
  • Agent-Weiterleitung (optional, aber empfohlen)

🚀 Nutzung

./get_cert_and_connect.sh