Che cosa potrebbe causare la visualizzazione del messaggio "richiesta exec non riuscita sul canale 0"


9

Sto provando a inviare un comando ssh in modo non interattivo al proxy di un server di automazione HP, e mentre posso collegarlo e inserirlo in modo interattivo perfettamente, ricevo sempre il messaggio "richiesta di esecuzione fallita sul canale 0" quando tento di inviare il comandare in modo non interattivo. C'è qualcosa che potrei cambiare sul lato client per consentirmi di inviare il comando? Non c'è molto che io possa cambiare sul lato server.

inserisci qui la descrizione dell'immagine

Apparentemente è possibile, ma non riesco proprio a farlo funzionare sulla mia installazione (vedi link: 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 )

Nel caso in cui fosse di aiuto, ecco i dettagli della versione per il mio sistema operativo e la versione di 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/"

Grazie

Risposte:


1

Il server consente di aprire una shell interattiva ma non la execchiamata di sistema per eseguire un comando senza uno pseudo-terminale. Utilizzare l' -tinterruttore come segue per forzare l'allocazione pseudo-terminale.

ssh austin@127.0.0.1 -p 8022 -t show version

In alternativa, utilizzare expectper scrivere un'interazione con l'endpoint remoto. Vedi questa risposta per un esempio.

Riferimenti:


0

Di solito perché il client richiede un tty e il server rifiuta. Prova a NON richiedere tty con unssh -T ......


-1

Hai qualcosa nel tuo shell rcfile (.bashrc, .zshrc, ecc.) O .login, .profile, ecc. Che sta verificando per assicurarsi che la shell sia interattiva prima che venga eseguita? Altrimenti, è qui che sta il tuo problema.

Il mio consiglio è di rinominare temporaneamente cose come .profile, .bashrc, .login e .bash_profile in .profile.off (e così via) e vedere se il problema persiste.

In caso contrario, è necessario un po 'di codice nel file rc che sta per verificare che la shell sia interattiva prima che venga eseguita.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.