使用ssh客户端库在C#中运行OpenWRT命令
我想在我的C#应用程序中运行与Openwrt相关的命令。我使用renci ssh.net和SharpSSH库来运行这些命令。它们在运行其他命令时运行良好,例如free、cat、df等。。。但返回时未找到uci和wifi等其他设备。以下是我运行的代码,没有任何错误:使用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
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”)代码>?不,那也不行。