Est-il possible de créer une commande sudo pour prendre en charge les clés privées SSH, de sorte que lorsque l'utilisateur se connecte à l'aide d'une clé privée, il / elle puisse se connecter à sudo sans saisir de mot de passe.
Cela permettrait de stocker les mots de passe UNIX sysadmin dans un entrepôt frigorifique chiffré sans avoir à y accéder, en supposant que les utilisateurs utilisent toujours des clés SSH privées sécurisées pour se connecter au serveur.
sudo visudo
et changez votre mot de passe pourNOPASSWD: ALL
voir si ca marcheRéponses:
Cette option existe depuis (au moins) avril 2014 .
Vous devrez installer un package appelé
pam_ssh_agent_auth
(disponible immédiatement pour YMMV, disponible pour Centos 7), puis configurer/etc/pam.d/sudo
pour l’accepter comme méthode d’autorisation. Enfin, vous devrez peut-être ajouterSSH_AUTH_SOCK
à la liste des variables d'environnement qui persistent pendantsudo
.Le wiki Gentoo a des détails pour ces étapes.
la source
Ce n'est pas possible sans quelques modifications sérieuses dans sudo et sshd. Sudo ne connaît pas les méthodes de connexion et ssh ne publie dans les autres programmes aucune information indiquant si une clé publique, un mot de passe ou un autre mécanisme a été utilisé pour la connexion.
Comme quelqu'un d'autre l'a dit, vous pouvez utiliser l'option NOPASSWD dans les sudoers - cela s'appliquerait toujours aux utilisateurs spécifiés, mais pas seulement lorsqu'ils utilisent ssh avec des clés privées.
Si vous le souhaitez vraiment, vous pouvez utiliser certaines astuces avec un programme suid qui vérifie le journal sshd et verrouille / édite le fichier sudoers pour permettre à cet utilisateur d'effectuer un sudo sans mot de passe, ainsi qu'une tâche périodique pour révoquer cette autorisation.
Cela dit, je pense que c'est une mauvaise idée. Exiger un mot de passe pour les commandes privilégiées présente quelques avantages intéressants par rapport à la clé privée SSH. En particulier, il vous laisse des délais pour l'authentification (le mot de passe doit être saisi à nouveau, ce n'est pas le cas pour les sessions ssh), il vous permet de définir des minimums de mot de passe et une rotation (contrairement aux clés ssh, dont la phrase secrète est en dehors du contrôle du serveur).
la source
Quelques réponses Pointez sur sudo sans mot de passe utilisateur distinct. Vous devriez être conscient que cela diminuera votre sécurité.
Pour un utilisateur qui s'est déjà fortement authentifié avec un certificat, cela peut ne pas être un problème, car il est en possession du certificat qui pourrait théoriquement le rendre root.
Toutefois, si vous envisagez des vulnérabilités qui fourniront à un attaquant un shell utilisateur limité et que cet utilisateur a NOPASSWD défini dans le fichier sudoers, l'attaquant est root sans aucune information d'identification du système.
Si sudo requiert un mot de passe de l'utilisateur, l'attaquant a besoin de temps et de chance pour faire passer ses privilèges à root.
la source