Назад | Перейти на главную страницу

Что могло вызвать появление сообщения «Ошибка выполнения запроса на канале 0»

Я пытаюсь отправить команду ssh в неинтерактивном режиме на прокси-сервер сервера автоматизации HP, и хотя я могу без проблем ввести ssh и ввести его в интерактивном режиме, я всегда получаю сообщение «Ошибка выполнения запроса на канале 0» при попытке отправить командовать не интерактивно. Могу ли я что-нибудь изменить на стороне клиента, чтобы я мог отправить команду? На стороне сервера я мало что могу изменить.

По-видимому, это возможно, но я просто не могу заставить его работать при моей установке (см. Ссылку: 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 / выделить / ложь # M2821)

В случае, если это поможет, вот сведения о версии моей ОС и версии 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/"

Спасибо

Сервер позволяет открывать интерактивную оболочку, но не exec системный вызов для выполнения команды без псевдотерминала. Использовать -t переключитесь следующим образом, чтобы принудительно выделить псевдотерминал.

ssh austin@127.0.0.1 -p 8022 -t show version

В качестве альтернативы используйте expect для сценария взаимодействия с удаленной конечной точкой. Видеть этот ответ для примера.

Ссылки:

Обычно из-за того, что клиент запрашивает tty, а сервер отказывается. Попробуйте НЕ запрашивать tty с ssh -T ......

Есть ли у вас что-нибудь в rcfile вашей оболочки (.bashrc, .zshrc и т. Д.) Или .login, .profile и т. Д., Которое проверяет, является ли оболочка интерактивной перед запуском? Если нет, то в этом и заключается ваша проблема.

Мой совет - временно переименовать такие вещи, как .profile, .bashrc, .login и .bash_profile, в .profile.off (и т. Д.) И посмотреть, существует ли проблема.

Если это не так, вам понадобится код в вызывающем ошибку rcfile, который перед запуском проверит, является ли оболочка интерактивной.