Соединение SSH.NET всегда отключается после RunCommand

Я пытаюсь подключиться к нашему коммутатору cisco через SSH.NET, выполнить несколько команд (до 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.Результат всегда правильный

Очевидно, если я уберу комментарии, это работает. Но, как вы можете себе представить, это чертовски медленно, а не то, что я могу использовать.

Был бы очень рад, если у кого-то есть ответ.

0 ответов

Другие вопросы по тегам