Les utilisateurs connectés sur mon serveur Linux devraient pouvoir ssh vers une machine distante spécifique avec un compte par défaut. L'authentification sur la machine distante utilise la clé publique, donc sur le serveur la clé privée correspondante est disponible.
Je ne veux pas que les utilisateurs du serveur puissent réellement lire la clé privée. Fondamentalement, le fait qu'ils aient accès au serveur leur donne le droit ssh, et leur suppression du serveur devrait également interdire la connexion à la machine distante.
Comment puis-je autoriser les utilisateurs à ouvrir une connexion ssh sans leur donner accès en lecture à la clé privée?
Mes réflexions jusqu'à présent: évidemment, l'exécutable ssh doit être capable de lire la clé privée, il doit donc s'exécuter sous un autre utilisateur sur le serveur qui en a le droit. Une fois la connexion ssh établie, je peux ensuite la "transmettre" à l'utilisateur afin qu'il puisse saisir des commandes et interagir avec la machine distante.
- Est-ce une bonne approche?
- Comment dois-je implémenter le transfert?
- Comment l'utilisateur peut-il initier la connexion (c'est-à-dire l'exécution du ssh par l'utilisateur qui a des droits de lecture sur la clé)?
- Y a-t-il une faille de sécurité? - si les utilisateurs peuvent exécuter un ssh en tant qu'autre utilisateur, peuvent-ils alors faire tout ce que l'autre utilisateur pourrait (y compris, lire la clé privée)?
~/.ssh/authorized_keys
fichier?