Como ejecutar un comando sudo remoto con SSH sin password utilidad SSHPASS

La siguiente necesidad surgió a partir de ejecutar una acción en un servidor con Debian que tiene acceso mediante SSH con certificado de seguridad, este servidor esta siendo monitoreado por un software de monitoreo y este software puede tomar acciones en caso que vea algún inconveniente en un servicio, para ello la solución fue la utilidad SSHPASS.

Para este caso en particular el servidor monitoreado con Debian esta corriendo un servicio de Open Swan VPN, la idea es que el software de monitoreo al detectar que alguna de las conexiones VPNs se caiga pueda ejecutar esta orden SSH de manera remota para reiniciar la conexión VPN y así intentar un reinicio para recuperar la conexión VPN.

El inconveniente es que para ejecutar esta orden, se debe ejecutar con privilegios de administrador, además debe ejecutarse de manera remota en una sola linea.

Sumando otro detalle que para enlace SSH el cliente SSH siempre solicita una contraseña, para evitar esto utilice la utilidad sshpass, que permite almacenar la contraseña en una variable y pasarla al comando SSH mediante una linea de comando, con la siguiente linea de bash se puede instalar la utilidad sshpass:
sudo apt-get update
sudo apt-get install sshpass

Procedimiento

Luego como buena practica te recomiendo crear un archivo oculto como el siguiente con el nombre “.env“:
#!/bin/bash
PASS="Password"
COMMAND="/tmp/test.sh"
USER="USER"
HOST="1.2.3.4"

De lo anterior se describe así, el nombre del archivo con el punto delante hará el archivo oculto dentro del sistema Linux, y el contenido del archivo se describe por si solo, así que solo falta ejecutar la linea que se puede ejecutar de la siguiente manera:
sshpass -p $PASS ssh -t $USER@$HOST "echo \"$PASS\" |sudo -S $COMMAND"

Podemos ayudarte en caso que necesites asistencia para construir esta comunicación, puedes comunicarte con nosotros utilizando el siguiente enlace con el formulario de contacto.

Siéntete en la liberta de comentar este y cualquier post de nuestra pagina, nuestra idea es crear una biblioteca de soluciones rápidas y concisas, para nosotros es un gusto que visites nuestra pagina.

Dejá una respuesta