0

我正在尝试远程进入虚拟控制器以在控制台中运行 aruba 命令,例如“show run”等,但这些命令没有输出。看来我能够成功连接,并且没有看到任何错误,但是运行命令时没有任何反应。

我已通过 putty 连接以验证命令,并验证凭据。我已经能够通过 python 执行类似的功能,但由于依赖原因,我需要能够通过 C# 执行此操作。

                var methods = new List<AuthenticationMethod>();
                methods.Add(new PasswordAuthenticationMethod(UserName, Password));
                var con = new ConnectionInfo(virtualController, 22, UserName, methods.ToArray());

                Console.WriteLine("Attempting Connection with Network...");
                var Client = new SshClient(con);
                Client.Connect();
                Console.WriteLine("Successfully Connected.");

                var cmdRun = Client.RunCommand(showClients);
                var result = cmdRun.Result;
                Console.WriteLine(result);

                cmdRun = Client.RunCommand(showRun);
                result = cmdRun.Result;
                Console.WriteLine(result);

                Client.Disconnect();

控制台输出“成功连接”。并继续执行所有代码,但从不输出任何内容:

Console.WriteLine(结果);

我希望通过 putty 运行此命令时会看到终端输出。

4

1 回答 1

0

我使用SSHClient而不是Client. 从这个答案中使用我的课程,这是调用后的一些示例代码Client.Connect()

SSHStream = SSHClient.CreateExtShellStream("dumb", 120, 80, 0, 0, 65536);
if (SSHStream != null) {
    DoCommand("no page");
    Connected = true;
}

var result = DoCommand("show cdp neighbors | begin Port", TimeSpan.FromSeconds(2), "#");

这是辅助方法:

public static IEnumerable<string> DoCommand(string c, TimeSpan? timeout = null, string prompt = "#") {
    return SSHStream.DoCommand(c, timeout ?? TimeSpan.FromSeconds(2), prompt);
}
于 2019-10-04T21:50:17.433 回答