No ssh sudo interactivo … solicita la contraseña en texto plano

Estoy ejecutando algunos comandos ssh no interactivos. La autenticación ssh se hace cargo de multa a través del agente ssh, pero si ejecuto un comando que requiere sudo, entonces la solicitud de contraseña en mi terminal es de texto plano. Por ejemplo:

ssh remotemachine "sudo -u www mkdir -p /path/to/new/folder" 

Me pedirá la contraseña en texto plano. ¿Alguien sabe cómo puedo conseguir que utilice el prompt normal de seguridad o que puedo pasar la contraseña a través de un interruptor? (Como entonces puedo configurar una solicitud segura de este lado antes de enviar el comando)

Cualquier ayuda es muy apreciada.

Utilice ssh -t :

Hombre ssh

 -t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, eg when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty. 

Así que su comando será

 ssh remotemachine -t "sudo -u www mkdir -p /path/to/new/folder" 

Si no desea introducir la contraseña, puede (si se le permite) modificar sudoers utilizando el comando visudo .

Añadir parámetro NOPASSWD: por ejemplo

 username ALL=(ALL) NOPASSWD: /bin/mkdir 

Si no puede editar / etc / sudoers, puede usar sudo -S :

Hombre sudo

 -S The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device. The password must be followed by a newline character. 

Con eso, el comando sería

 echo "your_password" | ssh remotemachine -t \ "sudo -S -u www mkdir -p /path/to/new/folder" 

Recuerde que esto agregará su contraseña al historial de comandos de su shell (con bash, que sería el archivo ~/.bash_history ).