¿Cómo habilitar los comandos sudo a través de SSH sin pedir contraseña?

13

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 generateOfflineSigve 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 lsen 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.

Jeff
fuente
No estoy 100% seguro de la /etc/sudoerssintaxis, pero mi archivo tiene la línea # %wheel ALL=(ALL) NOPASSWD: ALL. Tal vez tu línea debería ser jeff ALL=(ALL) NOPASSWD: ALL?
zapata
¿No tiene que estar todo el comando remoto entre comillas? Es posible que esté ejecutando el script en el
servidor
En realidad ... creo que Snapshoe está haciendo algo. Contestaré mi propia pregunta un poco más tarde ...
Jeff

Respuestas:

16

Parece que tenía un "error tipográfico" en el /etc/sudoersarchivo ...

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.

Jeff
fuente