SSH.NET passwd没有执行

我似乎无法使这个库工作。 我正在做一些非常简单的事情,但我仍然无法做到这一点。

client.Connect(); client.RunCommand("sudo passwd test"); Thread.Sleep(1000); client.RunCommand("testtest"); Thread.Sleep(1000); client.RunCommand("12345"); Thread.Sleep(1000); client.RunCommand("12345"); bool primera = true; client.Disconnect(); 

如果我尝试使用刚刚发布的凭据登录测试失败。 但是,如果我通过终端通过普通SSH执行相同的命令,我可以登录。为什么SSH.NET没有执行这些命令?

问题是因为在运行client.RunCommand("sudo passwd test"); 程序正在运行,等待输入。 在程序返回之前, RunCommand方法实际上不会运行该命令。

我在尝试运行su - 时遇到了同样的问题并找到了以下解决方法……

 Shell = Client.CreateShellStream("xterm", 80, 24, 800, 600, 1024); Reader = new StreamReader(Shell); Writer = new StreamWriter(Shell); Writer.AutoFlush = true; Writer.Write("su - " + login2 + "\n"); while (true) { var output = Reader.ReadLine(); if (output.EndsWith("Password: ")) { break; } } Writer.Write(password2 + "\n");