Cómo ejecutar el comando sudo NOPASSWD en otro servidor a través de SSH

Cómo ejecutar el comando sudo NOPASSWD en otro servidor a través de SSH

He leído todos los post relacionados con el tema. Pero si puedes ver el mío también y darme una sugerencia.

Estoy intentando utilizar SSH sin contraseña y ejecutar un script en un servidor remoto. Pero el acceso a Sudo solicita la contraseña. Por favor recomiende. Funcionó bien para la ruta local. Pero cualquier comando o script que requiera acceso root falla.

A continuación se muestra el guión:

#!/bin/sh
#set -x
# This Script will search for mib files on Current Server and other Server
# to load mib on current Server.

if [ -f /home/shuksand/Script/MibSearch.conf ]
then
        . /home/shuksand/Script/MibSearch.conf
else
        echo "Failed to find config file. Hence Existing!!!!"
fi

# Check alll MIBS on Server


while read line
do
        ServerName=$line
        echo $line
        scp  /home/shuksand/Input/Mib.txt $ServerName:
        cat /home/shuksand/Input/Mib.txt | while read DATA
        do
                echo $DATA
                ssh -t -t shuksand@${ServerName} 'sudo su - root /bin/sh /home/shuksand/Mib.sh $DATA'
        done
done < /home/shuksand/Input/ServerList.txt

¡¡Gracias de antemano!!

Respuesta1

Este problema suele deberse al archivo sudoers. Una cosa que puede intentar es crear un script que simplemente ejecute sh y luego ejecute el comando sudo desde ese indicador sh y vea si se necesita una contraseña.

Tenga en cuenta que sudo tiende a recordar si recientemente autenticó la contraseña desde el mismo inicio de sesión. Entonces, si sudo considera que usted está suficientemente autenticado una vez (quizás escribió una contraseña), y luego realiza un cambio en /etc/sudoers y luego intenta sudo nuevamente, podría ser engañado fácilmente porque es posible que sudo no se lo solicite. porque sudo podría recordar que pasaste la prueba hace menos de 5 minutos. Esto lo establece el valor de "tiempo de espera" en /etc/sudoers (man sudoers).

sudo su - root /bin/sh /home/shuksand/Mib.sh $DATOS

parece que probablemente sea, aunque innecesariamente, complicado. A veces he visto que sudo funciona y su falla, o viceversa. Ese comando requiere que ambos funcionen. En muchos sistemas,

sudo -i ~shuksand/Mib.sh $DATOS

Probablemente hará lo mismo.

Respuesta2

Creo que lo que debes hacer es editar tu archivo /etc/sudoers. Agrega algo como esto:

<your username> ALL=(ALL) NOPASSWD: ALL

Puedes encontrar más información aquí: https://askubuntu.com/questions/147241/execute-sudo-sin-contraseña

¿Puedo sugerirle que arregle el formato de su pregunta? La mayor parte de lo que escribes (el guión) no es realmente relevante para tu pregunta.

Editar: si ha configurado correctamente el archivo Mib.sh para que sea ejecutable e incluye la línea !#/bin/sh al inicio del archivo, entonces todo lo que necesita ejecutar es 'sudo su - /home/shuksand/Mib.sh $DATA' ("raíz" está implícita/predeterminada al hacer su)

información relacionada