Библиотека эмуляции VT100 в C# с SharpSSH

Я возился с Tamir.SharpSsh и хотел посмотреть, возможно ли использовать его для полной реализации консольного SSH-клиента в C#. Я не имею в виду что-то вроде putty, где он на самом деле работает в собственном графическом интерфейсе, но что-то, что вы можете запустить прямо из консоли windows cmd.

Библиотека очень хорошая, за исключением того, что она никак не обрабатывает эмуляцию терминала. Поэтому, используя SshShell, вы можете выполнять некоторые базовые операции, но результат часто бывает очень уродливым и полон случайных символов, и вы не можете взаимодействовать с такими вещами, как сценарии оболочки и т. Д.

Насколько я могу сказать, SharpSSH просто перенаправляет ввод-вывод на консольный ввод-вывод.

Насколько сложно было бы перенаправить это в другое место и обработать эмуляцию терминала? Кроме того, есть ли библиотека эмуляции (предпочтительно C# и с открытым исходным кодом), которую я мог бы использовать?

Изменить: Отказ от SharpSSH, см. Ответ ниже для окончательного решения, которое я придумал.

2 ответа

Решение

С тех пор я фактически отказался от попыток использовать SharpSSH. Это хорошая библиотека, но ей просто не хватало общей функциональности. Сейчас я использую библиотеку под названием Granados, которая является гораздо более совершенной реализацией SSH. Он имеет встроенную модель событий (в отличие от SharpSSH, которая в основном включает в себя споры с потоками), что делает использование очень простым.

Что касается части эмуляции терминала... Гранадос на самом деле является ядром другого проекта с открытым исходным кодом под названием Poderosa.

Poderosa - это полноценное приложение-эмулятор терминала, которое может подключаться к ssh, telnet и даже к вашей локальной установке cygwin.

Я на самом деле не разбирался в его коде эмуляции терминала, но он определенно делает это довольно хорошо, так что я уверен, что вы могли бы легко извлечь любой код, который вам нужен.

Я ищу то же самое. Здесь есть библиотека, которая стоит 700 долларов. Нашел еще один на codeproject, который выглядит дрянным, но может быть хорошим началом. И здесь, на stackru, есть неполная реализация. Еще ищете..

Другие вопросы по тегам