web-dev-qa-db-ja.com

「exec要求がチャネル0で失敗しました」というメッセージが表示される原因

HPオートメーションサーバーのプロキシに非対話的にsshコマンドを送信しようとしています。sshを入力して対話的に完全に正常に入力することはできますが、非対話的にコマンドを実行します。コマンドを送信できるようにクライアント側で変更できることはありますか?サーバー側で変更できることはあまりありません。

enter image description here

どうやらそれは可能ですが、インストールで機能させることができません(リンクを参照してください: 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

それが役立つ場合、私のOSと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/"

ありがとうございました

9
lacrosse1991

サーバーはインタラクティブシェルを開くことを許可していますが、execシステムコールを使用して疑似ターミナルなしでコマンドを実行することはできません。使用 -t次のように切り替えて、疑似端末割り当てを強制します。

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

または、expectを使用して、リモートエンドポイントとの対話をスクリプト化します。例については this answer を参照してください。

参照:

1
dragon

通常、クライアントがttyを要求していて、サーバーが拒否しているためです。 ssh -T ......でttyを要求しないようにしてください

0
Sirch