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.