Cuando intente ejecutar un binario remoto usando sudoen la caja remota:
ssh remotehost "sudo ./binary"
Veo este error:
sudo: sin tty presente y sin programa askpass especificado
¿Cómo puedo solucionar esto?
EDITAR esto definitivamente no es un duplicado de la pregunta sugerida como tal. Las respuestas allí son completamente irrelevantes. De hecho, esos cambios en el archivo sudoers ya se aplicaron al host remoto.
ssh
remote-access
Drew Noakes
fuente
fuente

Respuestas:
Una forma simple es especificar
-t:Desde la página del manual:
No puedo explicar exactamente por qué esto funciona, y puede haber una mejor manera. Me gustaría saber si es así :)@psusi explica por qué esto funciona en un comentario a continuación.
fuente
sudorequiere un tty para solicitar una contraseña, y al especificar comandos para ejecutarssh, no asigna uno de forma predeterminada, ya que normalmente se usa para ejecutar comandos no interactivos que pueden transferir datos binarios, que pueden disparar el tty .-ttrequiere cuando se pasa un comando usando heredocPregunta:
¿Cómo puedo solucionar esto?
Respuesta alternativa
Como alternativa, intente:
sudo -S ./binaryEsto dirige a sudo a leer la contraseña de la entrada estándar, stdin.
Escenarios donde esto ayuda
En entornos chroot, estas otras respuestas pueden no funcionar correctamente ... tal vez porque:
Por ejemplo: Instalación / reparación manual de linux o el gestor de arranque, utilizando un entorno chroot (como Archlinux y arch-chroot).
fuente
Debe definir la terminal / aplicación que leerá la contraseña. Hay dos variantes:
export SUDO_ASKPASS=/usr/libexec/openssh/ssh-askpassvim /etc/sudoers(Por defecto visiblepw)fuente
visudolugar devim /etc/sudoersevitar potencialmente bloquearse de su máquina debido a un error en su edición?Falla porque
sudoestá intentando solicitar la contraseña de root y no hay pseudo-tty asignado.Debe iniciar sesión como root o configurar las siguientes reglas en su
/etc/sudoers(o:)sudo visudo:Luego, asegúrese de que su usuario pertenezca al
admingrupo (owheel).fuente
También puede crear un archivo como "sudo_shutdown" en /etc/sudoers.d, con contenido:
Esto permite a los usuarios que están en el grupo adm cerrar sin una contraseña.
fuente
En mi caso, recibí este error porque no estaba especificando un comando que me gustaría usar como root en los sudoers
Algo como
/etc/sudoers.d/myuser:trabajó para mi
fuente