sudo sobre ssh: sin tty presente y sin programa askpass especificado

15

Sigo recibiendo este error y he intentado varias formas discutidas en línea para solucionarlo y ninguna me funciona. He configurado las claves SSH, así que cuando lo ejecuto 'ssh [email protected]'automáticamente me conecta, también configuré este usuario visudopara 'newton ALL=(ALL:ALL) ALL' que luego intente agregar'newton ALL=NOPASSWD: /var/www/script.sh'

Desafortunadamente, cada vez que corro ssh [email protected] 'sudo /var/www/script.sh'de Cygwin vuelvo. También he intentado agregar -t -tpero luego me pide la contraseña.

total size is 21209180  speedup is 314.69
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
Jeff Schaller
fuente
Esto no es específico de Cygwin; Veo el mismo problema al usar ssh example.com sudo echo hellode un sistema Linux a otro. He actualizado tu título en consecuencia. También marqué su pregunta para migrar al sitio Unix.
Keith Thompson

Respuestas:

10

Debe tener un terminal disponible para ejecutarse sudopara que pueda solicitarle la contraseña. Si le pasa un comando ssh, se supone que el comando no necesita un terminal y no crea uno, a menos que lo pase -t. Consulte SSH dentro de SSH falla con "stdin: no es un tty" para obtener una explicación más detallada.

Si no puede ingresar la contraseña incluso con -t, es posible que su problema se deba a Windows. La consola de Windows no emula completamente un terminal unix; Puede haber algunas dificultades para que las aplicaciones Cygwin emulen correctamente un terminal en estas circunstancias (no estoy seguro de eso, tenga en cuenta). Si ese es el problema, ejecute sshdentro de un emulador de terminal como Console2 o Mintty (incluido en la distribución de Cygwin): consulte La mejor manera de usar un shell con Cygwin en Windows 7 .

Si esperaba que la frase de contraseña SSH reemplazara su contraseña para la autenticación para sudo, eso no sucederá. Sudo requiere una contraseña (a menos que agregue la NOPASSWDetiqueta en el archivo sudoers). Tenga en cuenta que aún necesita tener un terminal, incluso con NOPASSWD, si la requirettyopción está configurada en el archivo sudoers.

Si desea iniciar sesión sin contraseña en la cuenta raíz (que generalmente no es una buena idea desde una perspectiva de seguridad), use SSH para llegar a la cuenta raíz, preferiblemente en dos saltos. Ver SSH dentro de SSH falla con "stdin: no es un tty" (con [email protected]for [email protected]).

Gilles 'SO- deja de ser malvado'
fuente
3

Vamos a querer habilitar ninguna contraseña para el comando / binario de nodejs.

Modificar visudo

sudo visudo

Con la siguiente línea para habilitar sin contraseña para un comando. Pass es múltiples comandos con comas y espacio después de cada comando.

<user name> ALL = NOPASSWD: /usr/local/bin/node

ex. sunthara ALL = NOPASSWD: /usr/local/bin/node

ingrese la descripción de la imagen aquí

Gajen Sunthara
fuente
1

Edite el archivo de configuración del servidor ssh y agregue en la parte inferior:

root# vim /etc/ssh/sshd_config

Match User newton
    PermitTTY yes
ILMostro_7
fuente
No funciona: service sshd restart=>/etc/ssh/sshd_config: line 91: Bad configuration option: User
kiltek
Es posible que deba cambiarse aMatch User newton
ILMostro_7
1
No, significa que no puede escribir Useren su archivo sshd, porque esa opción de configuración no existe. (al menos ese es el caso en mi sistema Ubuntu 16.04)
kiltek
De las páginas del manual: "MatchIntroduce un bloque condicional. Si se cumplen todos los criterios en la línea Match, las palabras clave en las siguientes líneas anulan las establecidas en la sección global del archivo de configuración, hasta que aparezca otra línea Match o el final del archivo. Los argumentos para hacer coincidir son uno o más pares de patrones de criterios. Los criterios disponibles son Usuario, Grupo, Host y Dirección. Los patrones de coincidencia pueden consistir en entradas individuales o listas separadas por comas y pueden usar el comodín y la negación operadores descritos en la sección PATTERNS de ssh_config (5) ".
ILMostro_7
No veo un Matchbloqueo en su respuesta ...
kiltek
0

Enfrenté este error cuando cometí un error en / etc / sudoers. En lugar de especificar múltiples comandos como este:

NOPASSWD= /bin/x, /bin/y

Lo guardé como:

NOPASSWD= /bin/x /bin/y

es decir, sin la coma. Ahora recibo el mensaje no tty present cuando intento

ssh host 'sudo x'
ottodidakt
fuente
0

No sé si está relacionado, pero cuando tenía '... NOPASSWD: /xyz/script.shl' en el archivo sudoers, recibí ese mensaje de error hasta que incluí la #!/bin/shellnamelínea en la parte superior del /xyz/script.shlarchivo.

LeeH
fuente
0

comentar los siguientes parámetros en el archivo / etc / sudoers me ayudó.

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
Defaults    requiretty

#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults   !visiblepw

---> comenta los parámetros de la siguiente manera

#Defaults    requiretty
#Defaults   !visiblepw
Santosh Garole
fuente