J'écris un script qui consiste à se connecter à un tas de machines distantes et à exécuter une commande dessus. J'ai configuré des clés pour que l'utilisateur exécutant le script n'ait pas à taper le mot de passe de chaque machine, mais seulement à saisir la phrase secrète au début du script.
Le problème est que la commande sur les machines distantes doit sudo
être exécutée. Et en même temps, le but du script est de débarrasser l'utilisateur d'avoir à taper des mots de passe plusieurs fois. Est-il possible d'éviter de taper le mot de passe pour sudo
? La modification des autorisations de la commande sur les machines distantes n'est pas une option.
/etc/sudoers
et il peut également être modifié en exécutantsudo /usr/sbin/visudo
%wesho ALL=NOPASSWD: /sbin/service httpd
@Wesho,
Vous pouvez faire ce que DaDaDom a dit (cela fonctionnera et c'est simple) ou vous pouvez renforcer votre configuration en utilisant un module PAM appelé pam-ssh-agent-auth .
Le processus pour les systèmes Debian / Ubuntu est relativement simple:
L'édition de la configuration sudo:
Ajoutez ce qui suit:
Continuez en modifiant les paramètres sudo PAM:
Ajoutez la ligne d' authentification juste au-dessus des 2 lignes @include existantes :
Voilà!
sudo sans authentification mais s'appuyant sur l'agent SSH pour effectuer une authentification forte, au lieu de simplement supprimer le mot de passe de la configuration sudo.
la source
authorized_keys
DOIT être verrouillé pour que seul root puisse le changer - sinon vous pourriez aussi bien désactiver le mot de passe.La réponse d'André de Miranda fournit une bonne solution en utilisant pam_ssh_agent_auth , mais les pièces sont obsolètes. En particulier les
/etc/pam.d/sudo
instructions lors de l'utilisation de nombreuses versions Linux actuelles.Si vous exécutez Ubuntu 12.04 précis, j'ai en fait simplifié le processus en fournissant une construction pam_ssh_agent_auth à partir d'un ppa: ppa: cpick / pam-ssh-agent-auth .
Vous pouvez installer le package en exécutant:
Après l'installation, si vous souhaitez utiliser ce module PAM avec sudo, vous devrez configurer les paramètres de sudo et la configuration PAM, dans Ubuntu 12.04 précis, vous pouvez le faire en créant les deux fichiers suivants:
/etc/sudoers.d/pam-ssh-agent-auth:
/etc/pam.d/sudo:
Si vous utilisez chef, le processus ci-dessus peut être automatisé avec mon livre de cuisine, disponible à l'un des deux emplacements suivants:
https://github.com/cpick/pam-ssh-agent-auth
http: //community.opscode .com / livres de cuisine / pam-ssh-agent-auth .
Le
files
répertoire du livre de recettes contient les fichiers/etc/pam.d/sudo
et/etc/sudoers.d/pam-ssh-agent-auth
décrits ci-dessus qui fonctionnent avec Ubuntu 12.04 précis et devraient être un point de départ utile lors de l'utilisation d'autres versions / distributions.la source