4

我正在尝试通过 SSH.NET 连接到我们的 cisco 交换机并在其上运行多个命令(最多 200 个)并读取结果。一个命令后,连接总是断开。

代码:

public void ConnectSSH(string username, string password)
{
    sshclient = new SshClient(_name, username, password);
    sshclient.Connect();
}

public string ExecuteSSH(string command)
{
    //if (!sshclient.IsConnected)
    //    sshclient.Connect();
    SshCommand x = sshclient.CreateCommand(command);
    x.Execute();
    return x.Result;
}

public void DisconnectSSH()
{
    sshclient.Disconnect();
    sshclient.Dispose();
}

样品用法:

ConnectSSH("user", "pw")
foreach (string exCmd in listToExecute)
    {
        listReturn.Add(ExecuteSSH(exCmd));
    }
DisconnectSSH();

每次在 x.Execute() 之后都会发生断开连接。x.Error 中没有错误,x.ExitStatus = 0

x.Result 总是正确的

显然,如果我删除评论,它会起作用。但正如你可以想象的那样,它非常慢,而不是我可以使用的。

如果有人有答案会很高兴。

4

0 回答 0