程序挂在.RunCommand()上。我是不是缺少了一些真正基本的东西?这似乎是适用于其他人的相同代码,我知道该命令是正确的。
如果我注释掉.runcommand(),程序执行时不会出错。
static void Main(string[] args)
{
PrivateKeyFile key = new PrivateKeyFile("private");
using (var client = new SshClient("host", "user", key))
{
client.Connect();
client.RunCommand("command");
client.Disconnect();
}
}
我感谢你的帮助。
了解您试图连接到的内容会很有帮助。此外,您可能需要检查代码中的错误。你似乎没有任何东西来验证你是否成功连接。。。我会从那里开始。将用户名和密码更改为应该失败的内容,并查看是否出现错误。
我已经尝试了许多不同的SSH库,例如perl、python、.NET,它们可以自动更改网络设备。我遇到的最常见的事情是,一些连接可以工作,登录也可以,但尝试传递命令要么超时,要么失败。我研究过使用不同版本的SSH,但这似乎没有什么区别。某些设备似乎需要在接受命令之前发送"\n"或"\l\r"。我可以使用linux盒子作为测试服务器,但连接到交换机或WAP不允许我传递命令。
最后,我放弃了,使用AutoIT拼凑了一些东西,或者尝试使用telnet——这在大多数环境中都是个坏主意,但perl、python和.NET在telnet连接方面非常出色。PHP也可以。
我甚至无法使用SSH脚本(包含成功登录时要传递的命令的平面文本文件)传递命令,许多应用程序(我认为是putty和OpenSSH)都支持这些脚本。