Кэйт Уэйнстейн (Keith Winstein) и группа разработчиков из Массачусетского Технологического Института (MIT) представили проект Mosh [2] с реализацией клиент-серверного ПО для организации удаленного доступа, по назначению схожего с SSH и применяющего его средства аутентификации, но предназначенного для использования в мобильных сетях с неустойчивым или медленным соединением. Исходные тексты проекта доступны [3] под лицензией GPLv3.
Mosh (Mobile Shell) выступает в роли надстройки над SSH, используя средства аутентификации последнего, но осуществляя обмен данными с использованием собственного протокола SSP (State Synchronization Protocol), реализованного поверх UDP с шифрованием AES-128. В отличие от SSH, который просто пересылает поток данных от сервера к клиенту и ожидает ответных данных, SSP основан на идее синхронизации состояний. И клиент и сервер хранят у себя текущее состояние экрана которое синхронизируется по запросу сторон. Этот подход позволяет легко устранить коренные недостатки SSH:
Еще одно достоинство Mosh заключается в простоте его установки. Сервер использует существующую SSH-инфраструктуру для аутентификации и непривилегированные порты для приема данных, поэтому если между машинами уже налажена SSH-связь, все что потребуется сделать, это просто установить на обе машины пакет mosh и использовать команду mosh вместо ssh. Если сервер не позволяет производить установку пакетов, то достаточно будет положить бинарный файл mosh-server в любой каталог (например, /home/user) и вызвать клиент mosh с опцией '--server=/home/user/mosh-server'.
Более детальную информацию об архитектуре системы можно прочитать в документе Mosh: An Interactive Remote Shell for Mobile Clients [4].
Ссылки:
[1] http://htfl.ru/cat-news-novosti
[2] /out.php?link=http://mosh.mit.edu
[3] /out.php?link=https://github.com/keithw/mosh
[4] /out.php?link=http://mosh.mit.edu/mosh-paper.pdf