是什么导致消息“通道0上的执行请求失败”出现


9

我正在尝试以非交互方式将ssh命令发送到HP自动化服务器的代理,并且虽然可以ssh并以交互方式完美地输入它,但是在尝试发送ssh命令时,总是收到消息“通道0上的exec请求失败”。非交互地命令。我可以在客户端进行任何更改以允许我发送命令吗?在服务器端,我没有什么可以改变的。

在此处输入图片说明

显然有可能,但是我无法在安装中正常运行(请参阅链接:https : //community.hpe.com/t5/Network-Automation-Practitioners/Is-there-a-way-to-issue-使用SSH-non / mp / 6935003 / highlight / false#M2821发送给NA代理的命令

如果有帮助,这里是我的操作系统和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/"

谢谢

Answers:


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中添加一些代码,这些代码将在外壳运行之前进行检查,以确保外壳是交互式的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.