Тестирование с использованием Plink.exe для подключения к SSH в C #
Я пытаюсь подключиться к терминалу Unix через plink.exe. Цель состоит в том, чтобы я мог прочитать текст обратно в строку.
Моя дилемма в том, что банк, в котором я работаю, использует старую систему типа as400, к которой мы обычно обращаемся через замазку. Я пытаюсь разработать пакет автоматизации, который будет взаимодействовать с системой, запускать задания, анализировать результаты и т. Д.
Так что я решил использовать plink через C #. Если я запускаю код через командную строку, я получаю (примерно) текст, который мне нужен. Однако я страдаю от проблемы в моем коде C # в том, что он просто зависает, и я никогда не получаю ответ.
То, что я хочу, это так:
Подключение к серверу. Команда ввода. Обратный экран // Дополнительные команды и т. Д.
Вот мой код до сих пор:
class Program
{
static void Main(string[] args)
{
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Windows\System32\cmd");
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
psi.UseShellExecute = false;
psi.CreateNoWindow = false;
Process process = Process.Start(psi);
string cmdForTunnel = @"c:\putty\plink -ssh jonkers@bankhq -pw automationhero";
process.StandardInput.WriteLine(cmdForTunnel);
// process.WaitForExit();
Thread.Sleep(30000);
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
//DoBusinessLogic();
process.StandardInput.WriteLine("logout");
Thread.Sleep(10000);
if (process.HasExited)
{
process.Close();
process.Dispose();
}
}
}
Я не совсем уверен, где проблемы лежат, потому что, как я уже говорил, я тестировал использование plink через командную строку, но с моим решением выше он просто зависает. Я пытался использовать решения от других людей в stackoverflow, но ни одно из них, похоже, не работает для меня, так как я продолжаю зависать. И советы будут высоко ценится.
РЕДАКТИРОВАТЬ
Теперь я решил использовать библиотеку Renci Sharp SSH и построить свою собственную среду для этого. Это работает намного лучше.