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


9

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

ここに画像の説明を入力してください

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

ありがとうございました

回答:


1

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

ssh austin@127.0.0.1 -p 8022 -t show version

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

参照:


0

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


-1

シェルrcfile(.bashrc、.zshrcなど)または.login、.profileなどに、実行前にシェルがインタラクティブであることを確認するためのチェック項目がありますか?そうでない場合は、そこに問題があります。

私のアドバイスは、一時的に.profile、.bashrc、.login、.bash_profileなどの名前を.profile.off(など)に変更し、問題がまだ存在するかどうかを確認することです。

そうでない場合は、問題のあるrcfileに、実行前にシェルがインタラクティブであることを確認するコードが必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.