我正在尝试通过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永远是正确的
显然,如果我拿出评论,它就有效。但正如你可以想象的那样,它很慢而不是我可以使用的东西。
如果有人有答案,我会很高兴。