Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
mosh — Удалённое терминальное приложение, поддерживающее прерывистое соединение, роуминг IP и спекулятивное локальное эхо для каналов с высокой задержкой. Использует шифрование AES-128 через UDP с аутентификацией на основе SSH. | Kitploit
Инструменты/GitHubGitHub/mobile-shell/mosh
Утилиты общего назначенияСетевая безопасность
GitHubmobile-shell/mosh

mosh

Удалённое терминальное приложение, поддерживающее прерывистое соединение, роуминг IP и спекулятивное локальное эхо для каналов с высокой задержкой. Использует шифрование AES-128 через UDP с аутентификацией на основе SSH.

РепозиторийСайт
14.3k8525 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ci

Mosh: мобильная оболочка

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

Он нацелен на поддержку типичных интерактивных применений SSH, а также:

  • Mosh сохраняет сеанс активным, если клиент переходит в спящий режим и просыпается позже, или временно теряет подключение к Интернету.

  • Mosh позволяет клиенту и серверу «роуминговать» и менять IP-адреса, сохраняя соединение активным. В отличие от SSH, Mosh можно использовать при переключении между сетями Wi-Fi, с Wi-Fi на мобильные данные или на проводной Ethernet.

  • Клиент Mosh запускает прогностическую модель поведения сервера в фоновом режиме и пытается разумно угадать, как каждое нажатие клавиши повлияет на состояние экрана. Когда он уверен в своих прогнозах, он показывает их пользователю, ожидая подтверждения от сервера. Большинство наборов текста и использования стрелок влево и вправо могут быть отображены немедленно.

    В результате Mosh пригоден для использования на соединениях с высокой задержкой, например, по мобильной сети данных или нестабильному Wi-Fi. В отличие от предыдущих попыток режимов локального эха в других протоколах, Mosh корректно работает с полноэкранными приложениями, такими как emacs, vi, alpine и irssi, и автоматически восстанавливается после случайных ошибок прогноза в пределах одного RTT. На линиях с высокой задержкой Mosh подчеркивает свои прогнозы, пока они не подтверждены, и убирает подчеркивание, когда они подтверждаются сервером.

Mosh не поддерживает X-форвардинг или неинтерактивное использование SSH, включая перенаправление портов.

Другие возможности

  • Mosh регулирует частоту кадров, чтобы не переполнять сетевые очереди на медленных каналах, поэтому «Control-C» всегда срабатывает в пределах RTT для остановки вышедшего из-под контроля процесса.

  • Mosh предупреждает пользователя, если он долго не получает сообщений от сервера.

  • Mosh поддерживает каналы с потерями, теряющие значительную часть пакетов.

  • Mosh лучше обрабатывает некоторые крайние случаи Unicode, чем SSH и существующие эмуляторы терминалов по отдельности, но требует окружения UTF-8 для работы.

  • Mosh использует SSH для установки соединения и аутентификации пользователей. Mosh не содержит привилегированного (root) кода.

Где взять Mosh

Веб-сайт Mosh содержит информацию о пакетах для многих операционных систем, а также инструкции по сборке из исходных кодов.

Обратите внимание, что mosh-client получает ключ сеанса AES в виде переменной окружения. Если вы портируете Mosh на новую операционную систему, убедитесь, что переменные окружения запущенного процесса не читаются другими пользователями. Мы подтвердили, что это так на GNU/Linux, OS X и FreeBSD.

Использование

Исполняемый файл mosh-client должен находиться на машине пользователя, а mosh-server — на удаленном хосте.

Пользователь запускает:

root@kitploit:~
$ mosh [user@]host

Если исполняемые файлы mosh-client или mosh-server находятся за пределами $PATH пользователя, mosh принимает аргументы --client=ПУТЬ и --server=ПУТЬ для выбора альтернативных расположений. Дополнительные опции описаны на странице руководства mosh(1).

На веб-сайте Mosh есть больше примеров и FAQ.

Как это работает

Программа mosh использует SSH для подключения к user@host для установки соединения. SSH может запросить у пользователя пароль или использовать аутентификацию по открытому ключу для входа в систему.

После этого mosh запускает процесс mosh-server (от имени пользователя) на серверной машине. Серверный процесс прослушивает высокий UDP-порт и отправляет свой номер порта и секретный ключ AES-128 обратно клиенту через SSH. Затем SSH-соединение закрывается, и сеанс терминала начинается по UDP.

Если клиент меняет IP-адрес, сервер начинает отправлять данные на новый IP-адрес в течение нескольких секунд.

Для работы Mosh требуется передача UDP-датаграмм между клиентом и сервером. По умолчанию mosh использует номер порта от 60000 до 61000, но пользователь может выбрать конкретный порт с помощью опции -p. Обратите внимание, что опция -p не влияет на порт, используемый SSH.

Советы дистрибьюторам

Примечание о флагах компилятора: Mosh — это код, чувствительный к безопасности. При автоматической сборке для бинарного пакета мы рекомендуем передавать опцию --enable-compile-warnings=error в ./configure. На GNU/Linux с g++ или clang++ пакет должен чисто собираться с -Werror. Пожалуйста, сообщите об ошибке, если это не так.

Там, где это возможно, Mosh собирается с различными флагами бинарного hardening, такими как -fstack-protector-all, -D_FORTIFY_SOURCE=2 и т. д. Они обеспечивают активную безопасность на случай ошибки повреждения памяти в Mosh или одной из используемых им библиотек. Полный список флагов можно найти в configure.ac, выполнив поиск HARDEN. Скрипт configure обнаруживает, какие флаги поддерживаются вашим компилятором, и включает их автоматически. Чтобы отключить это обнаружение, передайте --disable-hardening в ./configure. Пожалуйста, сообщите об ошибке, если у вас возникли проблемы с настройками по умолчанию; мы хотели бы, чтобы как можно больше пользователей работали в максимально безопасной конфигурации.

Mosh поставляется с настройкой оптимизации по умолчанию -O2. Некоторые дистрибьюторы спрашивали об изменении этого на -Os (что заставляет компилятор предпочитать оптимизацию размера оптимизации скорости). Мы проводили бенчмарки с помощью встроенной программы src/examples/benchmark, чтобы проверить это. Результаты показывают, что -O2 на 40% быстрее, чем -Os с g++ 4.6 на GNU/Linux, и на 16% быстрее, чем -Os с clang++ 3.1 на Mac OS X. В обоих случаях -Os действительно создавал меньший бинарник (до 40%, экономя почти 200 килобайт на диске). Хотя Mosh не требует особенно интенсивных вычислений и в основном простаивает, когда пользователь не печатает, мы считаем, что результаты говорят в пользу -O2 (по умолчанию).

Наша упаковка для Debian и Fedora представляет Mosh как единый пакет. Mosh имеет зависимость от Perl, которая требуется только для использования клиентом. Для некоторых платформ может иметь смысл создать отдельные пакеты mosh-server и mosh-client, чтобы использовать mosh-server без Perl.

Заметки для разработчиков

Чтобы начать вносить вклад в Mosh, установите следующие зависимости:

Debian, Подсистема Windows для Linux:

root@kitploit:~
$ sudo apt install -y build-essential protobuf-compiler \
    libprotobuf-dev pkg-config libutempter-dev zlib1g-dev libncurses5-dev \
    libssl-dev bash-completion tmux less

Fedora, RHEL:

root@kitploit:~
$ sudo dnf group install development-tools
$ sudo dnf install automake protobuf-compiler protobuf-devel libutempter-devel \
    zlib-ng-compat-devel ncurses-devel openssl-devel bash-completion tmux less \
    perl-diagnostics

MacOS:

root@kitploit:~
$ brew install protobuf automake

После того как вы сделали форк репозитория, выполните следующее для сборки и тестирования Mosh:

root@kitploit:~
$ ./autogen.sh
$ ./configure
$ make
$ make check

Mosh поддерживает создание отчетов о покрытии кода тестами, но эта возможность отключена по умолчанию. Чтобы включить её, убедитесь, что lcov установлен в вашей системе. Затем настройте и запустите тесты:

root@kitploit:~
$ ./configure --enable-code-coverage
$ make check-code-coverage

Это запустит все тесты и создаст отчет о покрытии в формате HTML, который можно открыть в вашем любимом браузере. Желательно, чтобы вновь добавленный код стремился к 90% (или лучше) инкрементальному тестовому покрытию.

Дополнительная информация

  • Веб-сайт Mosh:

    https://mosh.org

  • Список рассылки [email protected]:

    https://mailman.mit.edu/mailman/listinfo/mosh-devel

  • Список рассылки [email protected]:

    https://mailman.mit.edu/mailman/listinfo/mosh-users

  • Канал #mosh на Libera Chat

    https://web.libera.chat/#mosh

Скачать инструмент