c# - 为使用 SSH.NET SshClient.RunCommand 执行的命令 (cli) 提供输入/子命令

标签 c# .net ssh ssh.net juniper

我使用 Renci SSH.NET 库创建了一个程序。它发送所有命令并正常读取结果。但是,当我发送以下命令时:

client.RunCommand("cli");

程序无限期地卡在这一行。

对发生的事情有任何解释吗?

cli 是 Juniper 交换机/路由器上使用的命令。

最佳答案

AFAIK,cli 是一种 shell/交互式程序。所以我假设你已经尝试过做类似的事情:

client.RunCommand("cli");
client.RunCommand("some cli subcommand");

这是错误的。 cli 将一直等待子命令并且永远不会退出,直到您使用相应的命令(如 exit)明确关闭它。在它退出后,服务器将尝试将 cli 子命令 作为单独的顶级命令执行,但也失败了。


您必须将“cli 子命令”提供给 cli 命令的输入。但不幸的是,SSH.NET 不支持使用 SshClient.RunCommand/SshClient.CreateCommand 接口(interface)提供输入。参见 Allow writing to SshCommand .


有两种解决方法:

关于c# - 为使用 SSH.NET SshClient.RunCommand 执行的命令 (cli) 提供输入/子命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57666090/

相关文章:

javascript - C# 变量值仅在 Javascript 中调用时更新一次

linux - 跳过堡垒后在远程服务器上获取退出代码

git - 配置存储库以使用我的RSA key

python - 将不同服务器上的 MySQL Server 数据库中的表复制到我的计算机

c# - 将 .NET Core 类库引用添加到 UWP 应用程序时,它显示 "Unable to add a reference to project..."

c# - 寻找一种更简单的方法 - 以及更容易接受的方法

c# - VS2010 奇怪的 ASP.NET 启动错误

c# - 通用类型类型转换方法(.Net)

c# - 如何按两个属性对这个简单的 .NET 列表进行排序?

c# - 在 Entity Framework 6 中使用 SqlQuery<Dictionary<string, string>>