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");