使用 ssh 客户端库在 C# 中运行 OpenWRT 命令

本文关键字:运行 OpenWRT 命令 ssh 客户端 使用 | 更新日期: 2023-09-27 17:56:45

我想在我的C#应用程序中运行与Openwrt相关的命令。我使用 renci ssh.net 和 SharpSSH 库来运行命令。它们在运行其他命令时工作正常,例如免费,猫,df等...但返回时找不到UCI和WiFi等其他人。这是我的代码运行没有任何错误:

SshClient Client = new SshClient("192.168.1.1", "root", "12334456");
Client.Connect();
SshCommand sc= Client.CreateCommand("uci set wireless.@wifi-iface[1].disabled=1");
sc.Execute();

运行 sc.error 后具有以下值:

"ash: uci: not found"

运行其他命令(如wifi也有类似的结果。我使用腻子没有这样的问题。如何在 c# 应用程序中运行这些命令?

使用 ssh 客户端库在 C# 中运行 OpenWRT 命令

经过几天的尝试和错误,终于善良了 Chilkat 软件支持回答我的问题:

我认为解决方案是不使用SendReqExec,而是做一个外壳 会话(如 PuTTY)。 SendReqExec 方法等效于 通过"rexec"Linux/Unix 命令运行远程命令。 这不是 与成熟的外壳会话完全相同。

大多数SSH库都有类似stream或shell的东西。我尝试了一下,错误不再出现。