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

使用ssh客户端库在C#中运行OpenWRT命令,c#,ssh,command,openwrt,C#,Ssh,Command,Openwrt,我想在我的C#应用程序中运行与Openwrt相关的命令。我使用renci ssh.net和SharpSSH库来运行这些命令。它们在运行其他命令时运行良好,例如free、cat、df等。。。但返回时未找到uci和wifi等其他设备。以下是我运行的代码,没有任何错误: SshClient Client = new SshClient("192.168.1.1", "root", "12334456"); Client.Connect(); SshCommand sc= Client.CreateCo

我想在我的C#应用程序中运行与Openwrt相关的命令。我使用renci ssh.net和SharpSSH库来运行这些命令。它们在运行其他命令时运行良好,例如free、cat、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
也有类似的结果。我使用putty没有这样的问题。
如何在我的c#应用程序中运行这些命令?

经过几天的反复尝试,终于有了Chilkat软件支持人员回答我的问题:

我认为解决方案是不使用SendReqExec,而是使用shell 会话(如油灰)。SendReqExec方法等效于 通过“rexec”Linux/Unix命令运行远程命令。不是 与完整的shell会话完全相同


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

您是否尝试过运行
SshCommand sc=Client.CreateCommand(“uci”、“set”、“wireless.@wifi-iface[1].disabled=1”)?不,那也不行。