SshNet命令执行

我正在尝试使用C#创build一个SSH客户端。 我正在使用Renci.SshNet库。 我有问题发送命令,并从服务器获得适当的响应。

我一直在testing它的方式是通过发送ls命令,接着是cd ..命令,然后再次发送ls命令 – 查看cd ..命令是否正确执行。 但是,第一个ls命令和第二个ls命令之间没有区别。 我不完全确定我做错了什么。 也许我使用了错误的Sshtypes。 我已经提供了代码和输出。 我还添加了我期望的输出。

SshClient ssh = new SshClient("apk0rhel01", "dwaseem", "Da_011235813"); ssh.Connect(); while (true) { string command = Console.ReadLine(); if (command == "exit") { break; } var result = ssh.RunCommand(command); if (result.Result.Length < 10) continue; Console.Write(result.Result); } ssh.Disconnect(); 

输出: 在这里输入图像说明

预期产出: 在这里输入图像说明

Solutions Collecting From Web of "SshNet命令执行"

对于这个问题的答案与使用Tamir SSH库问题的答案相同 – 您正在使用旨在执行单个命令的类,该类每次都会登录并执行该命令。 你将无法像使用shell一样使用它。

如果你想实现交互式命令,你需要一些保持连接打开的东西,而且当命令完成时(通常通过查找提示模式来完成)你需要处理。 Shell类提供了处理这个问题的方法 – 你可以在他们的网站上找到它的使用例子。