Cuando intente ejecutar un binario remoto usando sudo
en 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
sudo
requiere 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 .-tt
requiere cuando se pasa un comando usando heredocPregunta:
¿Cómo puedo solucionar esto?
Respuesta alternativa
Como alternativa, intente:
sudo -S ./binary
Esto 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-askpass
vim /etc/sudoers
(Por defecto visiblepw)fuente
visudo
lugar devim /etc/sudoers
evitar potencialmente bloquearse de su máquina debido a un error en su edición?Falla porque
sudo
está 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
admin
grupo (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