0

程序挂在 .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();
        }
    }

我感谢任何高级帮助。

4

1 回答 1

0

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

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

最后,我放弃了并使用 AutoIT 拼凑了一些东西,或者尝试使用 telnet——这在大多数环境中是个坏主意,但是 perl、python 和 .NET 在 telnet 连接上工作得很好。PHP 也是如此。

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

于 2015-04-23T11:49:50.817 回答