簡體   English   中英

通過 ssh.net 向 aruba 交換機或虛擬 controller 發送命令時無法獲取 output

[英]Unable to get output when sending commands via ssh.net to aruba switch or virtual controller

我正在嘗試遠程進入虛擬 controller 以在控制台中運行 aruba 命令,例如“顯示運行”等,但沒有 output 出現命令。 看來我能夠成功連接,並且沒有看到任何錯誤,但是運行命令時沒有任何反應。

我已通過 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 運行此命令時會看到終端 output。

我使用SSHClient而不是Client 這個答案中使用我的 class ,這是調用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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM