我正在尝试通过 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 总是正确的
显然,如果我删除评论,它会起作用。但正如你可以想象的那样,它非常慢,而不是我可以使用的。
如果有人有答案会很高兴。