该程序挂起.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();
}
}
我感谢任何先进的帮助。
答案 0 :(得分:0)
了解您要连接的内容会很有帮助。此外,您可能希望查看代码中的错误检查。你似乎没有任何东西来验证你已经成功连接......我会从那里开始。将用户名和密码更改为应该失败的内容,看看是否有错误。
我已经尝试了许多不同的SSH库,对于perl,python,.NET,您可以将其命名为自动更改网络设备。我遇到的最常见的事情是某些连接可以正常工作,登录工作正常,但尝试传递命令会超时或失败。我研究了使用不同版本的SSH,但这似乎没有什么区别。某些设备似乎需要在接受命令之前发送“\ n”或“\ l \ r”。我可以使用Linux机箱作为测试服务器来工作,但是连接到交换机或WAP不允许我传递命令。
最后,我放弃并使用AutoIT拼凑了一些东西或尝试使用telnet - 这在大多数环境中都是一个坏主意,但perl,python和.NET与telnet连接完美配合。 PHP也是如此。
我甚至无法使用SSH脚本(包含成功登录时要传递的命令的平面文本文件)传递命令,这些命令由许多应用程序支持(putty,我认为和OpenSSH)。