无法在Cisco WLC上使用SSH.NET执行命令

问题描述 投票:1回答:1

[尝试使用SSH.NET连接到Cisco无线控制器并为其添加mac地址。当我调试代码时,在客户端的true属性上得到一个IsConnected,但是当我登录到控制器本身并执行“ Show loginsession”时,没有看到假定的连接。

而且,当我转到var result = client.RunCommand(comman.ToString()).Result;时,代码只是挂起而没有任何响应。已经离开了几分钟,没有超时或返回任何错误。

在第enter image description here行上方执行时的PuTTY会话的图片

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;
    }
}

c# .net ssh cisco ssh.net
1个回答
1
投票

您的服务器似乎不支持SSH“ exec”通道。因此,您不能使用CreateCommand / RunCommand

您必须使用“外壳”通道(SshClient.CreateShellSshClient.CreateShell)。通常不建议将其用于命令自动化。 SSH.NET甚至更是如此,它甚至不允许您关闭“ shell”通道的伪终端。这带来了很多讨厌的副作用,尤其是在Linux上使用“智能” shell时。但是对于像您这样的设备,它可能是可以忍受的,并且还是唯一的解决方案。

SshClient.CreateShellStream
© www.soinside.com 2019 - 2024. All rights reserved.