Solution 1 :
Tous les fichiers de clés peuvent être centralisés dans un même répertoire et non mélangés dans un même fichier.
Configurez simplement le sshd_config
fichier comme celui-ci :
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
Sur votre serveur :
- Les clés www-data seront en
/etc/ssh/authorized_keys/www-data
- les clés racine seront en
/etc/ssh/authorized_keys/root
Concernant les droits d'accès, ces paramètres sont acceptés par sshd :
/etc/ssh/authorized_keys
appartient à root:root
et a le mode 755. Les fichiers clés appartiennent à root:root
et avoir le mode 644.
D'autres modes peuvent fonctionner mais je ne les ai pas testés.
Solution 2 :
En règle générale, je ne ferais pas ce que vous suggérez. Cela brise les hypothèses courantes (comme ~/.ssh/authorized_keys
travailler pour vos utilisateurs et introduit des problèmes que vous avez déjà mentionnés dans votre question. Si vous constatez des problèmes flagrants avant la mise en œuvre, cela signifie que votre solution n'est pas idéale.
En termes de sécurité, je pense aussi que c'est un TERRIBLE idée de partager un compte de service avec tout le monde :pour le moment, c'est juste vous, et vous savez que c'est vous qui apportez les modifications. Dans 5 ans, lorsque vous aurez 5 administrateurs, vous voudrez savoir qui a changé quoi et fouiller dans les journaux d'audit pour voir qui a utilisé quelle clé quand c'est une douleur royale.
Il vaut mieux que les gens se connectent eux-mêmes et utilisent sudo
ou quelque chose de similaire pour augmenter leurs privilèges et faire tout ce qu'ils doivent faire.
Si vous souhaitez toujours centraliser les clés SSH, je vous suggère de rechercher un système de déploiement comme Puppet ou radmind pour gérer/distribuer le authorized_keys
fichiers au ~user/.ssh/
approprié répertoires (ou pirater une solution maison qui les met en place).
Au fur et à mesure que vous développez plusieurs serveurs, vous voudrez peut-être consulter le correctif de clé publique LDAP pour les anciennes versions d'OpenSSH (ou le AuthorizedKeysCommand
directive et un script approprié dans la nouvelle version d'OpenSSH) ainsi que vous pouvez centraliser vos utilisateurs et ne pas avoir à distribuer leurs clés sur tout votre réseau, mais cela risque d'être assez long pour vous.