Lösung 1:
Alle Schlüsseldateien können im selben Verzeichnis zentralisiert und nicht in derselben Datei gemischt werden.
Richten Sie einfach den sshd_config
ein Datei wie folgt:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
Auf Ihrem Server:
- WWW-Datenschlüssel werden in
/etc/ssh/authorized_keys/www-data
sein - Stammschlüssel werden in
/etc/ssh/authorized_keys/root
sein
Bezüglich der Zugriffsrechte werden diese Einstellungen von sshd übernommen:
/etc/ssh/authorized_keys
gehört root:root
und hat Modus 755. Schlüsseldateien gehören root:root
und haben Modus 644.
Andere Modi können funktionieren, aber ich habe sie nicht getestet.
Lösung 2:
Im Allgemeinen würde ich nicht tun, was Sie vorschlagen. Es bricht mit gängigen Annahmen (wie ~/.ssh/authorized_keys
für Ihre Benutzer arbeiten und Probleme einführt, die Sie bereits in Ihrer Frage erwähnt haben. Wenn Sie vor der Implementierung eklatante Probleme sehen, bedeutet dies, dass Ihre Lösung nicht ideal ist.
In Bezug auf die Sicherheit finde ich es auch SCHRECKLICH Idee, dass alle ein Dienstkonto teilen:Im Moment sind es nur Sie, und Sie wissen, dass Sie derjenige sind, der Änderungen vornimmt. In 5 Jahren, wenn Sie 5 Administratoren haben, werden Sie wissen wollen, wer was geändert hat, und Audit-Protokolle durchstöbern, um zu sehen, wer wann welchen Schlüssel verwendet hat, ist ein königlicher Schmerz.
Es ist besser, wenn sich die Leute als sie selbst anmelden und sudo
verwenden oder etwas Ähnliches, um ihre Privilegien zu eskalieren und alles zu tun, was sie tun müssen.
Wenn Sie SSH-Schlüssel dennoch zentralisieren möchten, schlage ich vor, sich ein Bereitstellungssystem wie Puppet oder radmind anzusehen, um den authorized_keys
zu verwalten/verteilen Dateien in den entsprechenden ~user/.ssh/
Verzeichnisse (oder hacken Sie eine selbst entwickelte Lösung, die sie per SCP an Ort und Stelle einfügt).
Wenn Sie auf mehrere Server expandieren, sollten Sie sich den LDAP Public Key-Patch für ältere Versionen von OpenSSH (oder den AuthorizedKeysCommand
Direktive und ein entsprechendes Skript in einer neueren Version von OpenSSH), damit Sie Ihre Benutzer zentralisieren können und ihre Schlüssel nicht über Ihr gesamtes Netzwerk verteilen müssen, aber das ist wahrscheinlich ziemlich weit weg für Sie.