¿Qué podría estar causando que aparezca el mensaje "solicitud de ejecución fallida en el canal 0"


9

Intento enviar un comando ssh de forma no interactiva al proxy de un servidor de automatización HP, y aunque puedo ingresar e ingresar ssh de manera interactiva perfectamente bien, siempre recibo el mensaje "la solicitud de ejecución falló en el canal 0" cuando intento enviar el comando sobre no interactivamente. ¿Hay algo que pueda cambiar en el lado del cliente para permitirme enviar el comando? No hay mucho que pueda cambiar en el lado del servidor.

ingrese la descripción de la imagen aquí

Aparentemente es posible, pero no puedo hacerlo funcionar en mi instalación (ver enlace: https://community.hpe.com/t5/Network-Automation-Practitioners/Is-there-a-way-to-issue- a-command-to-an-NA-proxy-using-SSH-non / mp / 6935003 / highlight / false # M2821 )

En caso de que ayude, aquí están los detalles de la versión para mi sistema operativo y la versión openssh:

OpenSSH_7.2p2, OpenSSL 1.0.2j-fips  26 Sep 2016

NAME="openSUSE Leap"
VERSION="42.2"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.2"
PRETTY_NAME="openSUSE Leap 42.2"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.2"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

Gracias

Respuestas:


1

El servidor le permite abrir un shell interactivo pero no la execllamada del sistema para ejecutar un comando sin un pseudo-terminal. Use el -tinterruptor de la siguiente manera para forzar la asignación de pseudo-terminal.

ssh austin@127.0.0.1 -p 8022 -t show version

Alternativamente, use expectpara guiar una interacción con el punto final remoto. Vea esta respuesta para un ejemplo.

Referencias


0

Generalmente porque el cliente está pidiendo un tty y el servidor se niega. Intente NO solicitar tty con unssh -T ......


-1

¿Tiene algo en su archivo rc de shell (.bashrc, .zshrc, etc.) o .login, .profile, etc. que verifica para asegurarse de que el shell sea interactivo antes de ejecutarse? Si no, ahí es donde radica tu problema.

Mi consejo es renombrar temporalmente cosas como .profile, .bashrc, .login y .bash_profile para que sean .profile.off (y así sucesivamente) y ver si el problema aún existe.

Si no es así, necesita algún código en el archivo rc infractor que se comprobará para asegurarse de que el shell sea interactivo antes de ejecutarse.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.