Estoy ejecutando el siguiente comando sobre ssh en un entorno de prueba, como root:
ssh <remote_srv> "apt-get autoremove"
En mi sshd_config tengo "PermitRootLogin sin contraseña" y he agregado el id_rsa.pub de root al archivo autorizado_keys en el servidor remoto.
Sin embargo, recibo los siguientes errores:
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
He buscado esto en las páginas de manual de ssh, pero no pude entender la explicación sobre pseudo-términos y ttys.
¿Hay alguien que pueda explicar los errores anteriores? Supongo que es una opción que falta, pero ¿cuál?
Ambas plataformas son Ubuntu 14.04 LTS.
La solución de Alex suprime los errores, y casi tiene la causa correcta, pero no le permite responder a ninguna pregunta (lo cual está bien cuando ha preseleccionado las respuestas y se está ejecutando desde un script, pero es realmente molesto cuando intenta nuevos paquetes ) El tema central es una interacción entre las suposiciones hechas por ssh y las diversas interfaces de debconf.
Comencemos con ssh. ssh asume que cuando no especifica un comando remoto, desea una pty en el extremo remoto y que especifica un control remoto que no (que funciona notablemente bien el 90% del tiempo, pero no este). Esto puede ser anulado por la
-t
opción que fuerza una pty o la-T
opción que no fuerza pty (o las opciones de archivo de configuración correspondientes). Además, cuando se usa una ptyTERM
, se copia la variable de entorno (se pueden aplicar excepciones para verificar la documentación de los detalles completos y el formulario de inscripción oficial del sorteo). También cabe destacar que la-x
opción deshabilita el reenvío X11 y lo-X
habilita.Debconf en sí no tiene requisitos de interactividad (por diseño), pero las diversas interfaces sí, y cada una tiene requisitos diferentes.
Creo que el frontend más atractivo es gnome (también hay un front-end ked que no puse a trabajar). La interfaz gnome (y la kde también) requiere algunas bibliotecas no predeterminadas y un servidor X11, por lo tanto, la línea de comando para forzar la interfaz gnome (una vez que se instalen las bibliotecas apropiadas)
o si prefieres kde
La interfaz de diálogo (el valor predeterminado) requiere una pty y un terminal con un nivel mínimo de funcionalidad especificado en la variable TERM (en la práctica, esto es cualquier cosa con una descripción completa de terminfo excepto tonto).
o
la interfaz de línea de lectura tiene requisitos menos estrictos y funcionará con terminales tontos, pero necesitará un pie.
La interfaz del editor depende de un editor que tenga requisitos específicos según el editor.
La interfaz no interactiva no tiene requisitos, pero no hace ninguna pregunta (que puede o no ser lo que desea).
fuente
ssh -t
para más detalles y otras opciones mira la página de manual de ssh. Vuelva a leer también el segundo párrafo de esta respuesta.