SSH к кассам и мини-ПК без белого IP: разобрал mssh
mssh соединяет вас по обычному ssh с машиной за NAT через ваш VPS. Проверил репозиторий и код: лицензию, возраст, авторов, схему токена, что видит сервер и где проект не подойдёт. Сравнил с nps, frp, WireGuard и autossh.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Техподдержка удалённых объектовМини-ПК у клиента завис, а белого IP там нет
Касса в магазине в другом городе перестала печатать чеки. Мини-ПК стоит под прилавком, интернет от местного провайдера, роутер за провайдерским NAT. Раньше вы просили продавца поставить AnyDesk и продиктовать код. Теперь точек двадцать, на половине Linux без экрана: серверы, регистраторы, мини-ПК.
Нужно что-то без белого IP и без VPN на каждой машине. Схему с сервером-посредником и веб-панелью я разбирал в статье про nps. Сегодня проект поменьше и с другим характером: mssh.
Как работает mssh
На вашем VPS запускается сервер. На каждой удалённой машине работает агент: он сам открывает исходящее соединение и ждёт. Открывать порты на объекте не нужно. У вас на компьютере вы пишете mssh user@имя-узла или обычный ssh имя-узла с настройкой ProxyCommand. Сервер соединяет вас с агентом, агент открывает локальный SSH на своей машине, и вы в консоли.
Имя узла вы задаёте сами при запуске агента: буквы, цифры, точка, подчёркивание, дефис, до 128 знаков. Программа на Go, серверная часть занимает один файл около 5 КБ. Ставится бинарником: скрипт для Linux amd64 и arm64 сверяет контрольную сумму и создаёт сервис systemd, для macOS бинарники лежат в релизах. Docker-файла в репозитории нет, сборок под Windows в релизах нет.
Что показал репозиторий
Создан 31 декабря 2025 года. В день создания автор сделал первые коммиты, потом пауза до 6 октября 2026, когда вышла версия 0.2.0 с тремя правками про безопасность. Автор один: в списке участников он же, 14 коммитов. 116 звёзд, 4 форка, единственное открытое обращение касается бота обновлений зависимостей. Тесты в репозитории есть.
Лицензия. Файла LICENSE в репозитории нет, GitHub лицензию не определил, в конце README написано «MIT». Для коммерческого внедрения я бы сначала попросил автора добавить файл. Версия 0.2 несовместима с 0.1: сервер, агенты и клиенты обновляются вместе.
Кто что видит: токен, ключи и трафик
Слоёв два. Первый, сам mssh. Сервер принимает только соединения с общим токеном длиной от 32 символов, на публичном адресе обязателен TLS. Токен один на всех: кто его знает, может занять любое свободное имя узла и подключиться к любому узлу. Для разных клиентов нужны отдельные серверы и токены, это прямо написано в документации.
Второй слой, обычный SSH. Вход на машину проверяет sshd на ней: ваши ключи, ваши пользователи. mssh ключей не хранит и учётных записей не заводит.
Видит ли сервер ваш трафик? По коду нет. Он копирует байты между двумя соединениями и SSH не разбирает. Рукопожатие SSH идёт между вашим клиентом и sshd на узле, поэтому содержимое зашифровано до самой машины. Сервер знает имена узлов, время и объём. От подмены узла встроенный клиент защищает требованием: ключ узла заранее лежит в known_hosts, незнакомый ключ отвергается. Если ходите через OpenSSH и соглашаетесь на любой новый ключ, эта защита пропадает.
Взлом сервера или кража токена даёт возможность стучаться в SSH-порт каждого узла. Дальше всё упирается в ваши ключи и в то, отключены ли пароли в sshd. Это моё прочтение кода, на практике я не проверял.
Где это не сработает
- Только SSH. Агент по коду ходит лишь на 127.0.0.1 своей машины, поэтому ставится на каждую. На регистратор, куда ничего не поставить, напрямую не выйти: нужна машина-шлюз в той же сети и прыжок через
ssh -J. - Один узел принимает одно подключение за раз, второй получит «agent busy».
- Нет интерфейса, нет прав по людям, журнала по пользователям я не нашёл: сервер пишет служебные строки.
- Скрипт ставит сервисы от root. Агенту root, судя по коду, не нужен, он лишь открывает соединение на localhost, но это моя оценка.
- После обрыва агент возвращается через 2 секунды, мёртвая запись исчезает не позже чем через 40. Открытый сеанс, судя по коду, при обрыве закрывается.
Чем отличается от nps, frp и WireGuard
nps даёт панель и много протоколов, но релизов с 2021 года нет, и для него есть запись об уязвимости. mssh узкий: только SSH, мало кода, который можно прочитать за вечер, но ни панели, ни прав по людям.
frp умеет больше: TCP, UDP, HTTP, есть панель, лицензия Apache-2.0, релиз v0.71.0 от 14 августа 2026. WireGuard, Tailscale (BSD-3-Clause, релиз 1.104.1 от 7 октября 2026) и Headscale (BSD-3-Clause, 0.29.4 от 23 сентября 2026) строят общую сеть: заходите куда угодно, включая 1С, RDP и веб-интерфейсы. Вариант с панелью и пользователями описан в статьях про Pritunl и Pangolin.
autossh по описанию на странице проекта запускает ssh и перезапускает при падении. Это обратный туннель вручную: ничего лишнего, но порт на каждое устройство вы ведёте сами в таблице.
Что можно сделать уже сейчас
Первое. Выпишите машины и задачи. Если нужна только консоль на Linux, mssh подходит. Если нужны 1С, RDP или веб-интерфейсы, смотрите VPN.
Второе. Соберите тестовую пару: сервер на VPS с доменом и сертификатом, один агент на запасном мини-ПК. Проверьте обрыв интернета, перезагрузку и занятый узел. В sshd отключите вход по паролю.
Третье. Договоритесь с владельцами. В договоре на поддержку пропишите, что на машине стоит агент и кто имеет доступ. К чужим устройствам подключаться можно только с ведома владельца.
Четвёртое. Прикиньте выгоду. По моей оценке, если выезд занимает полдня, а сбои бывают раз в месяц, постоянный канал окупается за пару выездов. Ваши цифры могут отличаться. Если машин больше десятка или нужны права по людям, смотрите услуги «Техподдержка удалённых объектов» и «Защищённый удалённый доступ», ориентиры по цене в прайсе.
Частые вопросы
Нужен ли белый IP на объекте?
Нет. Агент сам подключается к серверу, поэтому хватит обычного интернета. Белый адрес нужен только VPS.
Можно ли дать подрядчику доступ к одному узлу?
В mssh нет. Токен общий, и его обладатель может подключаться к любому узлу сервера. Для изоляции нужен отдельный сервер и токен, а на самой машине подрядчику выдаётся свой ключ SSH с ограниченным пользователем.
Годится ли mssh для боевых систем?
С оговорками. Версия 0.2.0, автор один, файла лицензии нет. Для критичных систем я бы взял frp или WireGuard, а mssh проверил на тестовых машинах.
Коротко о главном
mssh решает узкую задачу: консоль на машины за NAT через ваш сервер, без белого IP и без VPN. Код короткий, SSH шифруется до самого узла, но токен общий, проект молодой, а лицензионного файла в репозитории нет.
Ездите на каждый сбой к кассам, серверам или мини-ПК клиентов? Напишите мне в Telegram слово «УДАЛЁНКА». Посмотрим, что у вас стоит, и соберём схему доступа под ваши задачи.
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


