Co może być przyczyną pojawienia się komunikatu „Wykonanie żądania nie powiodło się na kanale 0”

9

Próbuję wysłać polecenie ssh nieinteraktywnie do serwera proxy serwera automatyzacji HP i chociaż mogę ssh wejść i wprowadzić je interaktywnie idealnie dobrze, zawsze pojawia się komunikat „Wykonanie żądania nie powiodło się na kanale 0” podczas próby wysłania dowodzenie nieinteraktywnie. Czy jest coś, co mogę zmienić po stronie klienta, aby umożliwić mi przesłanie polecenia? Po stronie serwera niewiele mogę zmienić.

wprowadź opis zdjęcia tutaj

Najwyraźniej jest to możliwe, ale po prostu nie mogę uruchomić go w mojej instalacji (patrz 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 )

Jeśli to pomoże, oto szczegóły wersji mojego systemu operacyjnego i wersji 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/"

Dziękuję Ci

lacrosse1991
źródło

Odpowiedzi:

1

Serwer zezwala na otwarcie interaktywnej powłoki, ale nie na execwywołanie systemowe w celu wykonania polecenia bez pseudo-terminala. Użyj -tprzełącznika w następujący sposób, aby wymusić alokację pseudoterminalową.

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

Alternatywnie użyj expectdo skryptu interakcji ze zdalnym punktem końcowym. Zobacz tę odpowiedź jako przykład.

Bibliografia:

smok
źródło
0

Zwykle dlatego, że klient prosi o tty, a serwer odmawia. Spróbuj NIE żądać tty zssh -T ......

Sirch
źródło
-1

Czy masz coś w swoim pliku rc powłoki (.bashrc, .zshrc itp.) Lub .login, .profile itp., Który sprawdza, czy powłoka jest interaktywna przed uruchomieniem? Jeśli nie, to na tym polega Twój problem.

Moja rada to tymczasowa zmiana nazw takich rzeczy jak .profile, .bashrc, .login i .bash_profile na .profile.off (i tak dalej) i sprawdzenie, czy problem nadal występuje.

Jeśli tak się nie stanie, potrzebujesz kodu w rcile rcile, który sprawdzi, czy powłoka jest interaktywna przed uruchomieniem.

Dr. JKL
źródło