Кэйт Уэйнстейн (Keith Winstein) и группа разработчиков из Массачусетского Технологического Института (MIT) представили проект Mosh (http://mosh.mit.edu) с реализацией клиент-серверного ПО для организации удаленного доступа, по назначению схожего с SSH и применяющего его средства аутентификации, но предназначенного для использования в мобильных сетях с неустойчивым или медленным соединением. Исходные тексты проекта доступны (https://github.com/keithw/mosh) под лицензией GPLv3.Mosh (Mobile Shell) выступает в роли надстройки над SSH, используя средства аутентификации последнего, но осуществляя обмен данными с использованием собственного протокола SSP (State Synchronization Protocol), реализованного поверх UDP с шифрованием AES-128. В отличие от SSH, который просто пересылает поток данных от сервера к клиенту и ожидает ответных данных, SSP основан на идее синхронизации состояний. И клиент и сервер хранят у себя текущее состояние экрана которое синхронизируется по запросу сторон. Этот подход позволяет легко устранить коренные недостатки SSH:
- Операции редактирования командной строки на стороне клиента. При использовании SSH каждый печатаемый в командной строке символ отправляется серверу, который затем передает его обратно клиенту, который производит вывод на экран, в результате чего на медленном соединении терминал становится менее отзывчивым.
Mosh обновляет содержимое экрана локально, отправляя информацию об изменившемся состоянии экрана (бинарный diff) серверу в момент нажатия клавиши Enter, в ответ сервер отсылает клиенту свой бинарный diff, содержащий ответ команды (или часть ответа, если вывод длинный), который объединяется с текущим содержимым. Такая архитектура позволяет сделать работу с удаленным терминалом удобной даже в условиях очень плохого и медленного соединения. Причем это относится и к полноэкранным приложениям.
- Прозрачное переключение между IP-адресами (роуминг). Каждые три секунды SSP-клиент посылает серверу heartbeat-сообщения с увеличенным номером последовательности. Каждый раз, когда сервер получает аутентичный пакет от клиента с номером последовательности выше предыдущего, IP-адрес его источника становится адресом назначения для исходящих пакетов сервера. Таким образом изменение адреса клиента никак не повлияет на текущую сессию и она останется открытой. Более того, используя heartbeat-сообщения клиент сможет вовремя уведомить пользователя о недоступности сервера (в отличие от SSH, пользуясь которым человек узнает о потере соединения только когда попробует напечатать команду) и не закроет сессию на время его отсутствия.
- Ctrl+C в любой ситуации. Mosh регулирует скорость посылки diff-сообщений клиенту на основе текущей скорости соединения и никогда не заполнит сетевые буферы клиента. Поэтому, даже если пользователь случайно запросит вывод на экран файла длиной 100 Мб, комбинация Ctrl+C сработает мгновенно.Еще одно достоинство Mosh заключается в простоте его установки. Сервер использует существующую SSH-инфраструктуру для аутентификации и непривилегированные порты для приема данных, поэтому если между машинами уже налажена SSH-связь, все что потребуется сделать, это просто установить на обе машины пакет mosh и использовать команду mosh вместо ssh. Если сервер не позволяет производить установку пакетов, то достаточно будет положить бинарный файл mosh-server в любой каталог (например, /tmp) и вызвать клиент mosh с опцией '--server=/tmp/mosh-server'.
Более детальную информацию об архитектуре системы можно прочитать в документе Mosh: An Interactive Remote Shell for Mobile Clients (http://mosh.mit.edu/mosh-paper.pdf).
URL: http://mosh.mit.edu
Новость: http://www.opennet.me/opennews/art.shtml?num=33849
Название они очень удачно выбрали
https://en.wikipedia.org/wiki/Moshing
Недавно хотел как раз дать такое название своему проекту)) но вовремя передумал (назвал Mash)
https://github.com/unixod/mash
Чертова служба в госпитале
Хватит пиарить свою поделку, никому кроме Вас она не нужна. shell over mail... Вы еще vpn over xmpp напишите!
> Хватит пиарить свою поделку, никому кроме Вас она не нужна.ты таки опросил всех, кто пользуется компами, и они все ответили «не надо»? ты крут.
> ты таки опросил всех, кто пользуется компамиДа. Я умею читать мысли. Я невероятно крут. Но, не смотря на столь уникальную особенность моего мозга, я что-то запаметовал, когда же это мы с Вами пили на брудершафт?
тогда, когда usenet преобразовался в форумы.
Да, ты "запаметовал", как пишется правильно это слово, это точно.
мощь! :)
sms shell :)
Посмотрим, если разработчик не пролюбит безопасность, то может и толк выйти — ssh на медленных соединениях и правда тот ещё тормоз.
Хотя, вот тут подумалось: а если на серваке система, работающая по типу мессенджера? Скажем, тот же finch? Или текстовый браузер — жамкнули на enter, страничка пошла грузиться, diff ушёл к клиенту, тут страничка и догрузилась? Кому не нравятся примеры приложений — подставьте «мониторинг логов» или «сборку из исходников», смысл не изменится.
в принципе, это можно решить. отчасти — решить более «жёсткой» синхронизацией при включении программой «alternate screen»: большинство полноэкранных софтин это используют. также ужесточить правила при переводе консоли в raw-режим. ну, и ещё кое-какими эвристиками. а если эта штука станет более-менее популярной хотя бы с этими фичами — добавить спецкоды типа «refresh start»/«refresh end» к курсесам, слангу и ты пы. на крайний случай — LD_PRELOAD'ом сначала.в общем, для начала эвристиками можно решить большинство случаев, мне кажется.
Эта штука напоминает устройство терминалов IBM 3270, работавших с мейнфреймами, в том числе, и с машинами ЕС. Там тоже терминал делал очень многое. Но там были проблемы с редакторами типа ViM.(если у кого есть желание поиграться, можно скачать дистрибутив SixPack - http://www.smrcc.org.uk/members/g4ugm/VM370.htm)
ViM тогда не быо, а vi(1) на 3270 работал.
> ViM тогда не быо, а vi(1) на 3270 работал.Точно? Там же терминал очень сильно отличающийся от UNIX'ового.
>ViM тогда не быо, а vi(1) на 3270 работал.Если учесть что 3270 передавал полный экранный буфер, верится в это с трудом
Неправда. Я писал для 3270 (EC 7920). В режиме форматированного экрана он передавал только текущее поле.
> Неправда. Я писал для 3270 (EC 7920). В режиме форматированного экрана он
> передавал только текущее поле.Ну и как, там Vi работал? Насколько я понял, играясь с эмулятором 3270, vi там работать не должен. По крайней мере, его клавиши навигации jkl;.
> Ну и как, там Vi работал? Насколько я понял, играясь с эмулятором
> 3270, vi там работать не должен. По крайней мере, его клавиши
> навигации jkl;.Про vi не скажу, а вот весьма сложные консольные приложения типа ISPF
(включая полноэкранный текстовый редактор, чем-то похожий на vi)
в 3270 прекрасно работают. Кто с мэйнфреймами дело имеет, наверняка
видел.
>> Неправда. Я писал для 3270 (EC 7920). В режиме форматированного экрана он
>> передавал только текущее поле.
> Ну и как, там Vi работал? Насколько я понял, играясь с эмулятором
> 3270, vi там работать не должен. По крайней мере, его клавиши
> навигации jkl;.Не могу ответить. Как-то у меня не сложилось поработать с 7920 из *nix. SVS, TKS, VM/SP - сколько хочешь, но vi там не было.
Суть в том, что 7920 прерывание посылает только на функциональные клавищи (Ф1-Ф12, ПД1-ПД3) и на ввод. И это был не недостаток, а преимущество. Чтобы не дергать стойку, канал и даже ЦП на каждую клавишу.
Поэтому весь софт под него так и адаптировался, чтобы или последовательность заканчивается перечисленными клавишами (чаще всего - ввод), или использует только их вообще.
Аж настольгия взяла - помнится девчонки из нашего отдела называли терминал из этой серии (EC 7927) зверь-машина)))
Оно автоматически восстанавливает сессию если я например усыпил ноутбук надолго и подключился к другому интернету потом?
да, прозрачно восстанавливает после сна и смены айпишника.
а вот это уже киллер-фича
С какго перепугу? Screen существет дольше чем ты :) Да и не только screen.
Никогда не знаешь понадобится ли тебе сейчас сорваться с места и убежать в другой конец города, а всегда запускать все приложения в скрине...
> Никогда не знаешь понадобится ли тебе сейчас сорваться с места и убежать
> в другой конец города, а всегда запускать все приложения в скрине...Иногда будет удобно, но не киллер фича ― факт. Ы прав.
!!!! добавляете в putty в remote command для каждого соединения строчку screen -U -x -R
и думаете как вы раньше жили
putty? это что-то из мира операционок, в которых нет ssh-клиента?
Это из мира айЗена, его единомышленников и сочувствующих.
ну ладно вам, не так просто использовать на работе opensource когда дофига важной инфы в outlook , хрен знает как мигрировать, и нет драйвера для крипто ключа.
> Это из мира айЗена, его единомышленников и сочувствующих.дружище, айзен украл у тебя левый ботинок?
> Это из мира айЗена, его единомышленников и сочувствующих.Я могу рассчитывать, что ты не глупая балаболка и сертифицировал как минимум одну открытую систему в какой-либо отрасли?
один раз настроить запуск с dtach'ем — и всё.
давно пора
Насколько я понял, оно использует параллельные соединения, как FTP/IRC/SIP/etc.
Причем без возможности вытащит параметры вспомогательного коннекта из основного.
То есть админам фаерволов опять лишний гемор.
насколько я понял вы нифига не смыслите в сетях.>UDP
!!
> насколько я понял вы нифига не смыслите в сетях.Насколько я понял, вы ничего не смыслите в stateful-фаерволах.
>> насколько я понял вы нифига не смыслите в сетях.
> Насколько я понял, вы ничего не смыслите в stateful-фаерволах.А также в работе SIP/RTP.
> Mosh обновляет содержимое экрана локально, отправляя информацию об
> изменившемся состоянии экрана (бинарный diff) серверу в момент нажатия клавиши
> Enter, в ответ сервер отсылает клиенту свой бинарный diffЭто каким они местом думали то?
Ctrl+C
Enter
Ctrl+V
EnterВо-вторых, разве терминальные esc последовательности, которые передает ssh, больше чем diff целиком экрана?
особенно вимеры обрадуются - после каждой команды энтер.
> особенно вимеры обрадуются - после каждой команды энтер.Только ed(1), только хардкор!
>> Mosh обновляет содержимое экрана локально, отправляя информацию об
>> изменившемся состоянии экрана (бинарный diff) серверу в момент нажатия клавиши
>> Enter, в ответ сервер отсылает клиенту свой бинарный diff
> Это каким они местом думали то?
> Ctrl+C
> Enter
> Ctrl+V
> Enter
>Во-вторых, разве терминальные esc последовательности, которые передает ssh, больше чем diff целиком экрана?т.е. открыл ты так текстовый редактор на локально машине, написал там команду, скопировал ее, вставил, ага? запустил top и смотришь обновление раз в минуту...
позвольте вам вопрос задать: вы когда нибудь сидели на каналах с пингом в 10-30 секунд и потерей пакетов до 75%?
Для особо тупых объясняю в чем суть> Ctrl+C
> Enter
> Ctrl+V
> EnterСуть в том, что реакция со стороны сервера требуется не только после нажатия Enter. А еще по куче других клавиш - того же таба например. Или функциональных клавиш. Или еще других, смотря какой софт запущен. То есть если раньше человек использовал гипотетический софт в котором он использовал комбинацию Ctrl+C/Ctrl+V, то теперь ему похоже придется после нажатия каждой такой комбинации использовать Enter. Что и должен был продемонстрировать процитированный кусок.
Но анонимуса и философа лолишты просто так не взять - они видимо поняли этот намек что можно набрать команду в отдельном редакторе и затем вставить ее в окно удаленного шелла. Нет, дорогой анонимус, хотя это и экономит нервы на плохом канале, проблемы действительно не решает.
>[оверквотинг удален]
> нажатия Enter. А еще по куче других клавиш - того же
> таба например. Или функциональных клавиш. Или еще других, смотря какой софт
> запущен. То есть если раньше человек использовал гипотетический софт в котором
> он использовал комбинацию Ctrl+C/Ctrl+V, то теперь ему похоже придется после нажатия
> каждой такой комбинации использовать Enter. Что и должен был продемонстрировать процитированный
> кусок.
> Но анонимуса и философа лолишты просто так не взять - они видимо
> поняли этот намек что можно набрать команду в отдельном редакторе и
> затем вставить ее в окно удаленного шелла. Нет, дорогой анонимус, хотя
> это и экономит нервы на плохом канале, проблемы действительно не решает.эта... ты поработай как-нибудь над сарказмом, научись распознавать его, что ли....
ну головой думайте то очевидно что не энтер является спусковым крючком синхронизации
Из описания на хабре:
Mosh не слушает портов и не производит аутентификацию. Mosh авторизовывается по ssh и запускает сервер через udp.
только udp over ssh, нафейхуа оно тогда надо?И вообще, я знаю одну шутку про udp, но не факт что она до вас дойдет
Ее все знают, именно поэтому TCP часто используется даже в неочевидных вещах.
Нет, udp не over ssh, а отдельным соединением
> Нет, udp не over ssh, а отдельным соединением... вот только у udp нет понятия соединений :)
Ethernet over ssh было бы круче!
> Ethernet over ssh было бы круче!man ssh
-w local_tun[:remote_tun]
не L2, конечно, но, в большинстве случаев, L3 вполне хватает.
Они изобрели блочный терминал (http://en.wikipedia.org/wiki/Block-oriented_terminal )???
> Они изобрели блочный терминал (http://en.wikipedia.org/wiki/Block-oriented_terminal
> )???Вот мне тоже кажется, что это аналог блочного терминала.
Интересно, а что будет с автокомплишеном?
> Интересно, а что будет с автокомплишеном?А что с ним должно быть не так?
То что там лишнее нажатие энтера требуется. Новость както неудачно преподнесена. Понимать видимо следует так что при *наборе командной строки* отправка всей строки пройдет *только* после нажатия энтер. Соответственно, автокомплит отвалится ибо срабатывает по промежуточному нажатию таба, который мош отправлять не намерет. Скорей всего, это временно, потому что добавить к "барьерному" символу энтера еще и таб много ума не потребует.
> То что там лишнее нажатие энтера требуется. Новость както неудачно преподнесена. Понимать
> видимо следует так что при *наборе командной строки* отправка всей строки
> пройдет *только* после нажатия энтер. Соответственно, автокомплит отвалится ибо срабатывает
> по промежуточному нажатию таба, который мош отправлять не намерет. Скорей всего,
> это временно, потому что добавить к "барьерному" символу энтера еще и
> таб много ума не потребует.да собственно там все отправлять придется. придумать локальное эхо - это хорошо, конечно, но как оно поможет мне less /var/log/messages?
> конечно, но как оно поможет мне less /var/log/messages?Никак. Зато например les /var/log/messages -> (бл!!!) ctrl+c -> less /var/log/messages будет намного приятнее выглядеть на GPRS галимом с пингом в 5 секунд.
if ($press_key == "tab" || $press_key == "enter") then diff();
на медленном линке будет тормозить, как и раньше :)
> Исходные тексты проекта доступны под лицензией GPLv3.Уже повод что бы не ставить. GPL v2 еще куда не шло.
А эти из клики поддерживающих маразматика не нужны.
а что плохого в GPLv3 ?
было б что-то плохое - вообще похоронили бы :)
> а что плохого в GPLv3 ?Очень смущает и беспокоит фанатиков проприетарщины, вроде анонима выше.
OpenSSH в мире Unix и Unix-like (а так же во всяких сетевых железках) является стандартом де-факто. И в этом не малая заслуга его либеральной лицензии.
Сомнительно, что софт с лицензией GPLv3 сможет стать альтернативой OpenSSH, кроме как для GNU/...Простите, если сможете.
> OpenSSH в мире Unix и Unix-like (а так же во всяких сетевых
> железках) является стандартом де-факто. И в этом не малая заслуга его
> либеральной лицензии.
> Сомнительно, что софт с лицензией GPLv3 сможет стать альтернативой OpenSSH, кроме как
> для GNU/...Разумеется, история пойдет своим чередом.
На железках со свободными прошивками будут работать программы GPLv3, а для проприетарных тивоизированных FreeBSD Foundation (по приказу начальства из Apple) организует написание "свободного" аналога.
Каждому свое.
Фантег.
Меня ни сколько не смущает, что на моем рабочем маке шелл окружение утянуто с фрибсд.
Меня не мучает совесть за то, что по долгу службы мне приходится пользоваться openssh как на "православном" линуксе, так и на "богомерзких" фрибсд, маке и соляре.
Я не просыпаюсь в холодном поту из-за того, что не могу посмотреть код закрытой части макоси, бо оно работает и кушать не просит.
Но меня меня ацки бесит, когда приходится ковырять корявый код пионэрских поделий со свободной лицензией.
> Но меня меня ацки бесит, когда приходится ковырять корявый код пионэрских поделий со свободной лицензией.Проще говоря, вы фанатично ненавидите OpenSource. Так и скажите. Зачем воду лить?
> Проще говоря, вы фанатично ненавидите OpenSource.Собственно, отсюда вся ненависть к copyleft-лицензиям, и терпимость к bsd-like (потому что это опенсорц только на время, а потом будет "православная" EULA).
Вы явно путаете цели и средства.
Открытость софта как цель - удел фанатегов.
Для нормальных людей, целью в большинстве случаев является хорошая работа софта.
А вот открытость софта как раз и должна являться средством, чтобы софт работал как нужно.
Открытость софта - необходимое условие его хорошей работы. Но не достаточное.
> Но меня меня ацки бесит, когда приходится ковырять корявый код пионэрских поделий
> со свободной лицензией.то ли дело ковырять высокопрофессиональный индийский код в дизассемблере!
а макось — она да, работает. пока в ней не начать что-нибудь действительно делать.
> а макось — она да, работает. пока в ней не начать что-нибудь действительно делать.Для меня макось - инструмент. Удобная прослойка между железом iTerm-ом.
>OpenSSH в мире Unix и Unix-like (а так же во всяких сетевых железках) является стандартом де-факто. И в этом не малая заслуга его либеральной лицензии.
>Сомнительно, что софт с лицензией GPLv3 сможет стать альтернативой OpenSSH, кроме как для GNU/...
>Простите, если сможете.Хм... не вижу никаких препятствий использования софта выпущенного под лицензией GPLv3 в не-GNU системах таких как например FreeBSD и пр.
AFAIK - достаточные различия между GPLv2 и GPLv3 лежат в появлении зациты от тивоизации а также от патентных нападений. Но ни то ни другое никак некасается вышеописанного.
Как минимум эти отличия искусственно ограничивают сферу применения софта.
С другой стороны, я не понимаю как эти ограничения мешают FreeBSD использовать свежие версии gcc.ps. кроме GNU/... и BSD есть много всяких разных ОС, в которых ограничения GPL являются значимыми.
>ps. кроме GNU/... и BSD есть много всяких разных ОС, в которых ограничения GPL являются значимыми.не отрицаю - но все ограничения были и во второй версии GPL
> Как минимум эти отличия искусственно ограничивают сферу применения софта.
> С другой стороны, я не понимаю как эти ограничения мешают FreeBSD использовать
> свежие версии gcc.идешь в порты и ставишь нужный, без проблем. а в базе новых не будет, да, и причины тому не раз уже обсуждались.
> Как минимум эти отличия искусственно ограничивают сферу применения софта.И это хорошо.
> OpenSSH в мире Unix и Unix-like (а так же во всяких сетевых железках) является стандартом де-факто. И в этом не малая заслуга его либеральной лицензии.Стандартом де-факто и де-юре должен быть интерфейс, а не софт.
Пытаться воткнуть везде один и тот же софт, играя на чужой любви к халяве, вместо того чтобы принять стандарт и требовать его соблюдения - жуткий костыль.
> а что плохого в GPLv3 ?Она очень беспокоит любителей прихватизировать результаты чужого труда: зажимать сорсы очень уж мешает: на нее уже не работают левые воркэраунды типа тивоизации, там предусмотрены патентные наезды и соответственно она намного лучше выполняет свои функции в современных реалиях с троянизнутыми против юзера девайсами и наглыми патентными троллями.
Чтобы защищать свободу пользователей программы в суде НЕОБХОДИМО быть автором и владельцем всех прав. Вот Линус например не собирается защищать пользователей своего ядра поэтому ничего такого не требует :)
Для фанатиков проприетарщины все остальные люди фанатики
Здравствуй, Ваня.
> Уже повод что бы не ставить. GPL v2 еще куда не шло.Я фшоке. Я понимаю ещё "повод не брать код", но вот эти прыжки "gplv3 не использую", "bsd софт не использую" это уже фанатизм с явным оттенком идиотизма. может не надо так уж? как пользователю вам должно быть всё равно - код открыт и ладушки.
> следующий раз FSF напишет в лицензии что весь софт принадлежит ейне надо забегать вперёд. следующий раз это следующий. что не устраивает тебя лично как пользователя СЕЙЧАС?
> и это тоже схаваешь ?
90% используемого софта - собственность разработчиков. и что?
> что не устраивает тебя лично как пользователя СЕЙЧАС?Не думаю, что это был пользователь. Скорее вредителель.
>>> Уже повод что бы не ставить. GPL v2 еще куда не шло.
>> Я фшоке. Я понимаю ещё "повод не брать код", но вот эти
>> прыжки "gplv3 не использую", "bsd софт не использую" это уже фанатизм
>> с явным оттенком идиотизма. может не надо так уж? как пользователю
>> вам должно быть всё равно - код открыт и ладушки.
> следующий раз FSF напишет в лицензии что весь софт принадлежит ей -
> и это тоже схаваешь ?авторское право никто не отменял. скорее зелёные человечки отнимут у тебя ноут.
> авторское право никто не отменял. скорее зелёные человечки отнимут у тебя ноут.До белой горячки не упиваюсь, так что ваши человечки мне не страшны.
> Прозрачное переключение между IP-адресами (роуминг). Каждые три секунды SSP-клиент посылает серверу heartbeat-сообщения с увеличенным номером последовательности.Изобрели TCP keepalive ?
>> Прозрачное переключение между IP-адресами (роуминг). Каждые три секунды SSP-клиент посылает серверу heartbeat-сообщения с увеличенным номером последовательности.
> Изобрели TCP keepalive ?это не keepalive. это скорее screen
> это не keepalive. это скорее screenЭто гибрид того и другого :). Оно же для сетевого уровня в openvpn сделано - есть возможность работы когда оба конца туннеля динамические.
Хм. Этот костыль надо было в модемные времена изобрести и к текущему времени уже похоронить, ибо задержки что по мобильным сетям, что на другую сторону планеты уже сократились до вполне комфортного уровня (разве что спутники остались). А вот попытки умничать типа не обновлять состояния до нажатия Enter наверняка непредсказуемым образом уменьшат комфортность работы с curses приложениями, и внешний UDP канал несёт свои проблемы (блокирование фаирволлами и nat'ами), и в плане безопасности всё это мне сильно не нравится.
> другую сторону планеты уже сократились до вполне комфортного уровняА давно ли ты, дядя, мобильный интернет юзал? Если не повезет то на отшибе по перегруженному жпрс пинг в 10 секунд - случается. А теперь прикинь как круто узреть команду через 10 секунд после того как ее напечатал. Особенно если опечатался, да :)
Я и сейчас с мобильного интернета. ping до опеннета 50 ms, в ssh задержки не чувствую, и за последний пару лет не помню чтобы было иначе, а откуда я только по ssh сидел - от парков до леса. Да и почти всегда рулит ssh host 'command command command command command', на неё задержки не влияют.
>а откуда я только по ssh сидел - от парков до лесаНа трассе пробовал, на воде, или в метро?
> Я и сейчас с мобильного интернета. ping до опеннета 50 ms, в
> ssh задержки не чувствую, и за последний пару лет не помню
> чтобы было иначе, а откуда я только по ssh сидел -
> от парков до леса. Да и почти всегда рулит ssh host
> 'command command command command command', на неё задержки не влияют.из нерезиновой нос уже покажите, съездите куда-нибудь на Лену, например.
> А давно ли ты, дядя, мобильный интернет юзал? Если не повезет то
> на отшибе по перегруженному жпрс пинг в 10 секунд - случается.На 3G с пингом обычно получше, а на GPRS чуда всё равно не произойдёт.
> к текущему времени уже похоронить, ибо задержки что по мобильным сетям, что на другую сторону планеты уже сократились до вполне комфортного уровня
> задержки ... на другую сторону планеты ... сократилисьКакой патч наложить на SSH, чтобы увеличить скорость света?
> реализованного поверх UDP с шифрованием AES-128Все круто, только TCP разрешен на фаерах чем UDP, а протолкать через энтерпрайзное прокси UDP - вообще фантастика.
А кто из мобильных операторов пускает клиентский трафик через ынтырпрайзное прокси тайну откройте ?
Мобильный шел нужен обычно тому, кто ваши ынтырпрайзные прокси и поднимает и проблем из-за невозможности пробросить трафик не испытывает.
"...Таким образом изменение адреса клиента никак не повлияет на текущую сессию и она останется открытой ..."имхо, таким образом предоставляется возможность обмануть сервер и подменить клиента
скомпилил, попробовал на локалхосте - и клиент и сервер нехило кушают процессор на каждом нажатии клавиш. видимо сыровато. а так мысль интересная, но не на медленных каналах, а на каналах с задержками - спутник. т.е. если машина на канале за спутником, соединение имеет тенденцию периодически "замерзать". Лупит себе какая-нить операционистка в консольной формочке по клавишам - а нифига не происходит с ее точки зрения. А так ввод забуферизировался, по жмаканью ентера отправился.
А аналог sshfs (moshfs) они то же сделают?
а как его свернуть в фон?С секьюр шеллом - понятно как: ентер волна сонтрол-зет, а мощ - никак?
Идея интересная, но реализация...
Про крутость UDP могут много рассказать разработчики uTorrent.
Имхо, проще использовать tcp с контролируемыми таймаутами.
И потом, ip адрес не так часто меняется - не каждую минуту.
Идея отправлять на сервер только по enter/tab - хорошая.
Правда, как mosh будет определять, что запущен редактор/gui ?
Зачетная штука, спасибо поюзал
Scrollback в терминале поломан, X forwarding отсутствует. Рановато пока.