ssh.net库 - client.RunCommand()不起作用

时间:2015-04-22 18:30:42

标签: .net ssh.net runcommand

该程序挂起.RunCommand()。我错过了一些非常基本的东西吗看来这是适用于其他人的相同代码,我知道命令是正确的。

如果我注释掉.runco​​mmand(),程序会毫无错误地执行。

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();
        }
    }

我感谢任何先进的帮助。

1 个答案:

答案 0 :(得分:0)

了解您要连接的内容会很有帮助。此外,您可能希望查看代码中的错误检查。你似乎没有任何东西来验证你已经成功连接......我会从那里开始。将用户名和密码更改为应该失败的内容,看看是否有错误。

我已经尝试了许多不同的SSH库,对于perl,python,.NET,您可以将其命名为自动更改网络设备。我遇到的最常见的事情是某些连接可以正常工作,登录工作正常,但尝试传递命令会超时或失败。我研究了使用不同版本的SSH,但这似乎没有什么区别。某些设备似乎需要在接受命令之前发送“\ n”或“\ l \ r”。我可以使用Linux机箱作为测试服务器来工作,但是连接到交换机或WAP不允许我传递命令。

最后,我放弃并使用AutoIT拼凑了一些东西或尝试使用telnet - 这在大多数环境中都是一个坏主意,但perl,python和.NET与telnet连接完美配合。 PHP也是如此。

我甚至无法使用SSH脚本(包含成功登录时要传递的命令的平面文本文件)传递命令,这些命令由许多应用程序支持(putty,我认为和OpenSSH)。