提问人:XmalevolentX 提问时间:2/19/2020 最后编辑:Martin PrikrylXmalevolentX 更新时间:11/3/2020 访问量:1004
无法在Cisco WLC上使用 SSH.NET 执行命令
Cannot execute command with SSH.NET on Cisco WLC
问:
尝试使用 SSH.NET 连接到 Cisco 无线控制器并向其添加 mac 地址。当我调试我的代码时,我得到了客户端的属性,但是当我登录到控制器本身并执行“显示登录会话”时,我没有看到列出的假定连接。true
IsConnected
另外,当我到达代码时,根本没有响应。已离开几分钟,并且没有超时或返回任何类型的错误。var result = client.RunCommand(comman.ToString()).Result;
我们用什么来“登录”并不重要。
public WebAPIEndPoint Put(WebAPIEndPoint console)
{
var auth = new PasswordAuthenticationMethod("UserName", "Password");
var connectionInfo = new ConnectionInfo(hostIP, 22, "UserName", auth);
using (var client = new SshClient(connectionInfo))
{
client.Connect();
var command =
client.CreateCommand("config macfilter add 00:17:ab:ea:d4:aa 5 0 Testing1234");
var result = client.RunCommand(comman.ToString()).Result;
Console.WriteLine(result);
client.Disconnect();
return console;
}
}
运行时,我得到:plink user@host config macfilter add 00:17:ab:ea:d4:aa 5 0 Testing1234
致命错误:服务器拒绝启动 shell/命令。
答:
1赞
Martin Prikryl
2/20/2020
#1
您的服务器似乎不支持 SSH“exec”通道。所以你不能使用 /。CreateCommand
RunCommand
您必须使用“shell”通道( 或 )。通常不建议将此功能用于命令自动化。SSH.NET 更是如此,它甚至不允许你关闭“shell”通道的伪终端。这带来了许多令人讨厌的副作用,尤其是 Linux 上的“智能”shell。但是对于像您这样的设备,它可能是可以忍受的,并且无论如何都是唯一的解决方案。SshClient.CreateShell
SshClient.CreateShellStream
ShellStream shellStream = client.CreateShellStream(string.Empty, 0, 0, 0, 0, 0);
shellStream.Write("username\n");
shellStream.Write("password\n");
shellStream.Write("config macfilter add 00:17:ab:ea:d4:aa 5 0 Testing1234\n");
下一个:转置和重复多列和多行
评论