程序在.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();
}
}我很感谢大家在进阶方面的帮助。
发布于 2015-04-23 19:49:51
知道你想要连接的是什么会很有帮助。此外,您可能希望检查代码中的错误。您似乎没有任何东西来验证您是否已成功连接...我会从那里开始。将用户名和密码更改为应该失败的内容,并查看是否出现错误。
我已经尝试了许多不同的SSH库,对于perl、python、.NET,您命名它是为了自动更改网络设备。我遇到的最常见的事情是,一些连接可以正常工作,登录工作正常,但尝试传递命令要么超时,要么失败。我研究了使用SSH的不同版本,但这似乎没有什么不同。某些设备似乎要求在接受命令之前发送"\n“或"\l\r”。我可以使用linux机器作为测试服务器,但连接到交换机或WAP不允许我传递命令。
最后,我放弃了,使用AutoIT拼凑了一些东西,或者尝试使用远程登录--这在大多数环境中都不是一个好主意,但是perl、python和.NET在远程登录连接上工作得很好。PHP也是如此。
我甚至无法使用一些应用程序(我认为是putty和OpenSSH )支持的SSH脚本(包含成功登录时要传递的命令的纯文本文件)来传递命令。
https://stackoverflow.com/questions/29806055
复制相似问题