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.
我正在尝试使用 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.