Was könnte dazu führen, dass die Meldung "Exec-Anforderung auf Kanal 0 fehlgeschlagen" angezeigt wird

9

Ich versuche, einen ssh-Befehl nicht interaktiv an den Proxy eines HP Automation-Servers zu senden, und während ich ssh eingeben und interaktiv einwandfrei eingeben kann, wird beim Senden des Befehls immer die Meldung "Exec Request Failed on Channel 0" angezeigt Befehl über nicht interaktiv. Gibt es etwas, das ich auf der Clientseite ändern könnte, damit ich den Befehl senden kann? Auf der Serverseite kann ich nicht viel ändern.

Geben Sie hier die Bildbeschreibung ein

Anscheinend ist es möglich, aber ich kann es bei meiner Installation einfach nicht zum Laufen bringen (siehe Link: https://community.hpe.com/t5/Network-Automation-Practitioners/Is-there-a-way-to-issue- a-Befehl-an-einen-NA-Proxy-mit-SSH-nicht / mp / 6935003 / Highlight / false # M2821 )

Falls es helfen sollte, hier sind die Versionsdetails für mein Betriebssystem und meine openssh-Version:

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/"

Danke

lacrosse1991
quelle

Antworten:

1

Auf dem Server können Sie eine interaktive Shell öffnen, nicht jedoch den execSystemaufruf, um einen Befehl ohne Pseudo-Terminal auszuführen. Verwenden Sie den -tSchalter wie folgt, um die Zuweisung von Pseudo-Terminals zu erzwingen.

ssh [email protected] -p 8022 -t show version

Alternativ können Sie expecteine Interaktion mit dem Remote-Endpunkt per Skript ausführen. In dieser Antwort finden Sie ein Beispiel.

Verweise:

Drachen
quelle
0

Normalerweise, weil der Client nach einem tty fragt und der Server dies ablehnt. Versuchen Sie NICHT, tty mit einem anzufordernssh -T ......

Sirch
quelle
-1

Haben Sie irgendetwas in Ihrer Shell-RC-Datei (.bashrc, .zshrc usw.) oder .login, .profile usw., das überprüft, ob die Shell interaktiv ist, bevor sie ausgeführt wird? Wenn nicht, liegt dort Ihr Problem.

Mein Rat ist, Dinge wie .profile, .bashrc, .login und .bash_profile vorübergehend in .profile.off (usw.) umzubenennen und zu prüfen, ob das Problem weiterhin besteht.

Wenn dies nicht der Fall ist, benötigen Sie Code in der fehlerhaften RC-Datei, der überprüft, ob die Shell interaktiv ist, bevor sie ausgeführt wird.

Dr. JKL
quelle