Tengo el servidor A y el servidor B (ambos Ubuntu 10.04 LTS) haciendo diferentes tareas. El servidor A necesita empujar el servidor B, que genera un archivo y lo devuelve al servidor A cuando termina. Todo esto es interno y no me preocupan demasiado los problemas de seguridad. El intercambio de claves SSH ya se realiza entre los servidores A y B y funciona bien.
En el servidor B, el script se generateOfflineSig
ve así
#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp
También en el servidor B, visudo tiene esta entrada:
jeff ALL=NOPASSWD: ALL
Lo que funciona si ejecuto sudo ls
en el Servidor B ... no se solicita contraseña.
Lamentablemente, SSH siempre solicita una contraseña en el servidor A:
jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:
¿Algunas ideas? Este proceso no puede ser interrumpido por la entrada de contraseña.
/etc/sudoers
sintaxis, pero mi archivo tiene la línea# %wheel ALL=(ALL) NOPASSWD: ALL
. Tal vez tu línea debería serjeff ALL=(ALL) NOPASSWD: ALL
?Respuestas:
Parece que tenía un "error tipográfico" en el
/etc/sudoers
archivo ...jeff ALL=NOPASSWD: ALL
necesitaba estar al final del archivo. La Ayuda de Ubuntu solo dice Agregar (...) al FIN del archivo (si no al final puede anularse mediante entradas posteriores)
Después de eso, nunca se le pide a la contraseña los "comandos sudo de jeff, ya sea localmente o por SSH.
fuente