Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Эмулятор терминала для sftp/scp #292

Open
unxed opened this issue Sep 10, 2019 · 4 comments
Open

Эмулятор терминала для sftp/scp #292

unxed opened this issue Sep 10, 2019 · 4 comments

Comments

@unxed
Copy link

unxed commented Sep 10, 2019

Сейчас для исполнения команд на стороне сервера используются вызовы putty, если я правильно понимаю.

А можно встроить прямо свой собственный эмулятор терминала? В совсем идеальном варианте - с поддержкой расширений far2l, чтобы внутри можно было линкусовый far гонять со всеми хоткеями и синхронизацией буфера обмена.

elfmz/far2l#583 (comment)

@VictorVG
Copy link

VictorVG commented Sep 10, 2019

NetBox поддерживает только протоколы SFTP, FTP, SCP, FTPS и WebDAV, также он позволяет реализовать режим FXP передачи между двумя FTP серверами открытыми на разных панелях Far-а.

А то, что вы предлагаете в ОС Linux реализовано средствами утилиты GNU Rush (Restricted User Shell) (в составе ОС семейств UNIX, IBM OS/2, MS Windows, IBM S/360, IBM S/370, IBM S/390 утилиты rush нет), но никто не мешает пользователю подключить PuTTY через настройки NetBox и использовать её.

А можно встроить прямо свой собственный эмулятор терминала? В совсем идеальном варианте - с поддержкой расширений far2l, чтобы внутри можно было линкусовый far гонять со всеми хоткеями и синхронизацией буфера обмена.

"Идеальный вариант" в части использования расширений от Far2L вряд ли реализем из-за различий в архитектуре ОС, а встраивать собственный эмулятор терминала для работающего в консоли ОС приложения? По моему командной строки и F12 0 достаточно чтобы командовать парадом с консоли.

@elfmz
Copy link

elfmz commented Sep 10, 2019

Помимо SFTP/SCP NetBox умеет и запускать команды удаленно. Зайдите в NetBox/SFTP на Linux систему и наберите в ком строке фара ls - увидите вывод. А вот если вы наберете там "TERM=xterm mc" (и если он установлен на "той" стороне), то увидите примерно такое вот:
image

"Идеальный вариант" в части использования расширений от Far2L

Он как раз таки реализуем очень просто, так как расширения far2l - это тупо поля, эквивалентные win32 структурам ввода: https://github.com/elfmz/far2l/blob/master/far2l/VTFar2lExtensios.cpp#L112
Но на самом деле самое сложное тут - добавит в NetBox "обычный" эмулятор терминала, а расширения (если конечно вы будете готовы их принять) я и сам к нему добавить смогу, скорее всего особо не напрягаясь.

@elfmz
Copy link

elfmz commented Sep 10, 2019

И да, если не побрезгуете, то почти готовый эмулятор терминала под виндовую консоль, он вот: https://github.com/elfmz/far2l/blob/master/far2l/vtansi.cpp
Насколько я понимаю, NetBox является GPL проектом, так что лицензионно тут все чисто. Но с этим кодом есть два ньюанса:

  1. Он ужасен., потому как базируется на каком то перловом модуле эмулятора терминала для винды.
  2. Я не удержался и в своей реализации виндовых консольных апи сделал некоторые расширения для упрощения реализации терминала. Самое сложное для адаптации: SetConsoleScrollRegion/GetConsoleScrollRegion

Оригинальный код этого терминала вот: https://github.com/adoxa/ansicon/blob/master/ANSI.c
Его можно брать как есть. Кстати с тех пор как я его утянул к себе его доделывали. Возможно те проблемы которые я фиксил используя свою "адаптированную" консоль в нем уже решены.

@VictorVG
Copy link

Вторая версия основана WinSCP с последствиями типа инца №255 - NetBox v2.4.5.526/.527 - игнорирование RFC-1738 при разборе анонимных URL начиная с WinSCP v5.10.3 beta, это раз, у разработчика сейчас нет времени заниматься плагином - это видно по списку открытых инцов - два. Я лично считаю, что надо сначала устранить уже отловленные ошибки, а после думать что добавлять. Та же "ошибка" WinSCP инц 255 приводит к очень "простым" последствиям - отказ серверов в авторизации при установленной опции плагина "Разрешить пустой пароль" для FTP - либа WinSCP передаёт серверу случайный логин, результат - отказ, пример №2 - ftp.videolan. org. Откройте с ним соединение в NetBox последних версий, перейдите в каталог /pub/videolan/vlc (каталоги dvblast, keys, libdvbpsi, libdvdcss, multicat, pub, testing, ubuntu, vlc, vlma, vls и x264 это симлинки (я специально в раскраске FarUE3 сделал их индикацию красным / для каталогов и ! для файлов) плагин их не сможет обработать) и подождите немного, А после сравните картину с поведением FileZilla 3.xx . Я этот баг уже и не хочу репортить - и без того ещё не устранённых ошибок достаточно, зачем плодить сущности?:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants