SSH Key Management – Best Practices 2025

Ed25519 Keys, SSH-Agent und Zugriffsverwaltung für Teams

S
SeeColors IT
11. Juni 20264 Min. Lesezeit116 Aufrufe

Modernes SSH-Key-Paar erstellen

# Ed25519 – aktueller Standard (schnell, sicher, kurze Keys)
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_firma

# RSA 4096 (falls Ed25519 nicht unterstützt wird)
ssh-keygen -t rsa -b 4096 -C "[email protected]"

# Passphrase IMMER setzen!
# Key-Dateien anzeigen
ls -la ~/.ssh/
# id_firma     → Private Key (NIEMALS teilen!)
# id_firma.pub → Public Key (auf Server kopieren)
cat ~/.ssh/id_firma.pub

Public Key auf Server verteilen

# Methode 1: ssh-copy-id (einfachste)
ssh-copy-id -i ~/.ssh/id_firma.pub [email protected]

# Methode 2: Manuell
cat ~/.ssh/id_firma.pub | ssh [email protected]     "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

# Methode 3: Ansible (für viele Server)
# ansible all -m authorized_key -a "user=admin key='{{ lookup("file", "~/.ssh/id_firma.pub") }}'"

SSH-Agent für Passphrase-Komfort

# SSH-Agent starten
eval "$(ssh-agent -s)"

# Key laden (einmalige Passphrase-Eingabe)
ssh-add ~/.ssh/id_firma

# Keys anzeigen
ssh-add -l

# SSH-Verbindung mit Agent
ssh -A [email protected]  # -A = Agent-Forwarding

# ~/.ssh/config für bequemen Zugriff
cat > ~/.ssh/config << 'EOF'
Host *
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_firma

Host server-prod
    HostName server.firma.de
    User admin
    Port 2222
    ForwardAgent yes

Host bastion
    HostName bastion.firma.de
    User jump-user

Host intern-server
    HostName 192.168.1.50
    User admin
    ProxyJump bastion  # Via Bastion-Host!
EOF

SSH Certificate Authority (Team-Zugriff)

# CA-Key generieren (einmalig, auf sicherem System)
ssh-keygen -t ed25519 -C "Firma SSH CA" -f ssh_ca

# Mitarbeiter-Public-Key signieren (gültig 30 Tage)
ssh-keygen -s ssh_ca     -I "mustermann_firma"     -n "admin,www-data"     -V "+30d"     mustermann_id_ed25519.pub

# Signiertes Zertifikat anzeigen
ssh-keygen -L -f mustermann_id_ed25519-cert.pub

# Server: CA vertrauen statt einzelnen Public Keys
echo "TrustedUserCAKeys /etc/ssh/ca.pub" >> /etc/ssh/sshd_config
cp ssh_ca.pub /etc/ssh/ca.pub
systemctl reload sshd

# Mitarbeiter braucht jetzt NUR das Zertifikat (kein Server-Eintrag!)
ssh -i mustermann_id_ed25519 [email protected]

Orphaned Keys finden

# Alle authorized_keys auf allen Servern sammeln
for server in web-01 web-02 db-01; do
    ssh admin@$server "cat ~/.ssh/authorized_keys" |         awk -v s=$server '{print s": "$0}'
done > /tmp/alle-keys.txt

# Inaktive/ausgeschiedene Mitarbeiter-Keys prüfen
grep "[email protected]" /tmp/alle-keys.txt
# Falls gefunden: Key entfernen!

FAQ

Was ist sicherer: Passwort oder SSH-Key?
SSH-Key ist erheblich sicherer. Ein 256-Bit Ed25519-Key entspricht ~3.072-Bit RSA - nicht brute-forceable. Passwörter können geleakt werden.

Fazit

SSH Certificate Authority macht Team-Zugriffsverwaltung skalierbar: ein Zertifikat pro Mitarbeiter statt Key in jeder authorized_keys-Datei auf jedem Server.

SSH und Zugangsverwaltung für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel