C# SSH.NET CreateCommand/RunCommand 不起作用

C# SSH.NET CreateCommand/RunCommand does not work

我想创建一个应用程序来将 SSH 命令发送到 HP 交换机和其他一些设备。但是从 HP Switch 我得到响应 “不支持执行 SSH 命令。”.

我用的是这部分代码。

SshClient sshclient = new SshClient(IP,username, pass);
sshclient.Connect();
SshCommand sc = sshclient.CreateCommand("conf");
sc.Execute();
string answer = sc.Result;
label9.Text = answer;

关于如何制作交互式 shell 仿真有什么想法吗? 我只找到了关于这个问题的线程。 phpseclib - attempting to connect to an HP procurve switch returns error: SSH command execution is not supported

您的代码大体上是正确的。但似乎特定设备不支持 SSH“exec”通道,SshCommand class.

后面是什么

正如 answer to the question you have linked yourself 所建议的,不幸的是,您必须使用 SSH“shell”通道模拟 shell。

为此使用 SshClient.CreateShell 并将命令写入其输入流。

请注意,这只是针对您的特定情况的解决方法。一般情况下,“shell”频道不得用于自动化。