16 votes

Comment activer les commandes sudo via SSH sans demander de mot de passe?

J'ai le serveur A et le serveur B (tous deux Ubuntu 10.04 LTS) qui effectuent des tâches différentes. Le serveur A doit contacter le serveur B, qui génère un fichier et le renvoie via scp au serveur A une fois terminé. Tout cela se fait en interne et je ne suis pas trop préoccupé par les problèmes de sécurité. L'échange de clés SSH est déjà effectué entre les serveurs A et B et fonctionne bien.

Sur le serveur B, le script generateOfflineSig ressemble à ceci :

#!/bin/bash
echo "dans le script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "après sudo"
scp offline_package.sig jeff@servera:/tmp

Également sur le serveur B, visudo contient cette entrée :

jeff ALL=NOPASSWD: ALL

Ce qui fonctionne si j'exécute sudo ls sur le serveur B... aucun mot de passe demandé.

Malheureusement, SSH demande toujours un mot de passe sur le serveur A :

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
dans le script
[sudo] mot de passe pour jeff :

Des idées ? Ce processus ne peut pas être interrompu par une demande de mot de passe.

19voto

Jeff Points 483

Il semble que j'ai fait une "faute de frappe" dans le fichier /etc/sudoers...

jeff ALL=NOPASSWD: ALL

devait être à la très fin du fichier. Aide Ubuntu dit seulement Ajoutez (...) à la FIN du fichier (si ce n'est pas à la fin, cela peut être annulé par des entrées ultérieures)

Après cela, le mot de passe n'est jamais demandé pour les commandes sudo de "jeff", que ce soit en local ou en SSH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X