SshNet 命令执行

SshNet Command Execution

我正在尝试使用 C# 创建 SSH 客户端。我正在使用 Renci.SshNet 库。我在发送命令和从服务器获得适当响应时遇到问题。

我一直在测试它的方法是发送 ls 命令,然后发送 cd.. 命令,然后再次发送 ls 命令——查看 cd.. 命令是否正确执行。但是,第一个 ls 命令和第二个 ls 命令之间没有区别。我不完全确定我做错了什么。也许我使用了错误的 Ssh 类型。我已经提供了代码和我得到的输出。我还添加了我期望的输出。

        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();

输出:

预期输出:

这个问题的答案与使用 Tamir SSH 库的问题的答案相同 - 您正在使用 class 用于执行单个命令,每次登录并执行命令。您将无法像 shell.

一样使用它

如果你想实现交互式命令,你需要一些东西来保持连接打开,你需要处理命令完成的时间(这通常是通过寻找提示模式来完成的) ). Shell class 提供了处理此问题的方法 - 您可以找到其使用示例 on their website.