Comando: debe ejecutarse desde una terminal

9

Tengo una cuenta de alojamiento compartido, inicié sesión con ssh. cuando escribo, por ejemplo su, tuve esta salida: su: must be run from a terminal

¿Es este error relativo al hecho de que no tengo permisos suficientes u otra cosa?

4m1nh4j1
fuente
Normalmente esperaría que ese error sea una indicación de que no hay TTY asignado para la conexión, pero eso no tiene mucho sentido si se conecta a través de SSH y obtiene un shell. ¿Puede compartir los pasos exactos que sigue para obtener ese error, comenzando con un ssh -F /dev/null user@hostde su sistema local? (Esto -F /dev/nullhace que se ignore cualquier configuración SSH local del sistema o del usuario). Si no está autorizado para usar su, eso normalmente causará un mensaje de error mucho más obvio (aunque no recuerdo la redacción exacta y no tengo un sistema configurado donde puedo probarlo).
un CVn
1
¿Existe quizás una conexión con securetty (5)? En otras palabras, ¿está el tty de la sesión ssh en / etc / securetty? (prepend / dev /)
D McKeon
Dices, por ejemplo su, ¿obtienes este error para otros comandos?
ctrl-alt-delor
¿Qué ttymuestra el comando ? ¿Estás iniciando sesión con ssh luego escribiendo su, o estás ejecutando ssh su? ¿Qué emulador de terminal estás usando? ¿Se supone que tienes acceso de root?
Gilles 'SO- deja de ser malvado'
Tratando de responder a todas las preguntas: me conecto con ssh ( ssh -l login@host hostPuedo abrir una sesión, sólo cuando se utiliza este comando) que el tipo su(otros comandos funciona normalmente), cuando escribo ttytengo: not a tty.
4m1nh4j1

Respuestas:

4

Prueba la -topción de ssh. Si eso no funciona, inténtalo -tt.

-t Forzar asignación de pseudo-tty. Esto se puede usar para ejecutar programas arbitrarios basados ​​en pantalla en una máquina remota, lo que puede ser muy útil, por ejemplo, al implementar servicios de menú. Varias -topciones fuerzan la asignación de tty, incluso si ssh no tiene tty local.

ctrl-alt-delor
fuente
Lo intenté ssh -tl root@host hosty con doble t, pero obtuve el mismo resultado. Ps: como se menciona en la documentación, para iniciar sesión con ssh debería usar un comando como este ssh -l login@host host.
4m1nh4j1
¿Por qué inicias sesión como root? y no necesitas el -l.
ctrl-alt-delor
Estoy usando -lporque descubrí que sin agregarlo, no puedo iniciar sesión. Puedo ver esto en la documentación dtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System (La única página que he encontrado está en francés). Si no uso -lssh, no acepte mi contraseña.
4m1nh4j1
Creé una cuenta ssh con " root" como inicio de sesión, así que lo uso root@hostpara ssh
4m1nh4j1
Inicie sesión como root, considerado dañino: la mayoría de las personas preocupadas por la seguridad deshabilitan el inicio de sesión de root. Puede obtener privilegios de root una vez que haya iniciado sesión (lo recomiendo sudo). Si también deshabilita la autenticación de contraseña, forzando así la autenticación basada en la clave, necesitará la clave y la contraseña para llegar a la raíz.
ctrl-alt-delor