
Со временем у меня появилось несколько серверов: VPS, домашний NAS и ещё пара машин под разные задачи. Для подключения я использовал PuTTY. Он работает, но управлять несколькими серверами в нём неудобно. Сессии хранятся в реестре Windows, список хостов плоский, вкладок нет. Чтобы открыть два сервера, нужны два отдельных окна.
Termius устроен иначе. Там есть нормальный список хостов, вкладки и синхронизация. Но для работы нужен аккаунт, данные хранятся в облаке, а часть функций доступна только по подписке.
Мне не хотелось регистрироваться и загружать список своих серверов в облако ради обычного SSH‑подключения. Поэтому я начал делать собственный клиент - LucidSSH. Это не попытка собрать ещё один комбайн для системных администраторов. Мне нужен был простой локальный SSH‑клиент с несколькими дополнительными функциями: защитой от опасных команд и понятными объяснениями ошибок.
Я не занимаюсь администрированием каждый день. Поэтому делал программу прежде всего для таких же пользователей, как я: тех, кто впервые настраивает VPS, NAS, Raspberry Pi или небольшой домашний сервер. Разрабатываю LucidSSH в свободное от основной работы время.

Почему не PuTTY и не Termius
PuTTY надёжный и привычный. Но он ничего не объясняет и почти не помогает избежать ошибок. Termius, MobaXterm и SecureCRT дают гораздо больше возможностей: SFTP, туннели, макросы, синхронизацию профилей и другие инструменты. Это удобно, когда понимаешь, что тебе нужно и как всё работает. Новичку такой набор может только мешать. Особенно когда сервер уже перестал отвечать и нужно быстро понять, что произошло. LucidSSH находится где‑то между этими вариантами. В нём достаточно функций для обычной работы с сервером, но нет перегруженного интерфейса. Основу приложения составляют три функции.
Три основные функции
Страж опасных команд
Страж проверяет команду до того, как она уйдёт на сервер. Он реагирует на rm -rf, dd и другие команды, которые могут удалить данные или повредить систему. Для подтверждения недостаточно нажать кнопку. Нужно вручную ввести имя файла, каталога или устройства, с которым будет работать команда. Это медленнее обычного диалога с кнопкой «Продолжить». Но стандартные предупреждения быстро перестают замечать. Их подтверждают автоматически, не читая текст. Страж можно отключить полностью или только для конкретного хоста.

Офлайн‑детектор ошибок
Детектор работает локально. Без интернета и без LLM. Внутри приложения есть база распространённых ошибок SSH и shell с объяснениями на русском языке. Например:
Permission denied;Host key verification failed;Connection refused;ошибки, связанные с
nologin.
Объяснение появляется прямо под терминалом. Не нужно копировать ошибку и искать её значение в интернете.

Breadcrumb текущего каталога
Над терминалом находится строка с текущим путём. Она получает данные через интеграцию с shell, а не пытается угадать каталог по тексту приглашения. На любой сегмент пути можно нажать. После этого путь вставляется в командную строку. Функция небольшая, но полезная. Особенно когда открыто несколько вкладок и легко забыть, в каком каталоге сейчас находишься. Она же снижает вероятность выполнить опасную команду не в той папке.

Что уже есть
Все данные хранятся локально. Для использования LucidSSH не нужен аккаунт. В приложении нет облачной синхронизации и телеметрии. Пароли сохраняются через Windows Credential Manager. Приватные ключи не копируются во внутреннее хранилище приложения. Первая версия LucidSSH уже доступна.
В v1.0 нет:
SFTP;
объяснения ошибок через LLM;
Mosh;
Telnet;
RDP;
VNC.
Я сознательно оставил эти функции за пределами первой версии. Позже станет понятно, какие из них действительно нужны пользователям.
Цифровая подпись
Первая версия вышла без цифровой подписи. Поэтому при запуске Windows показывает предупреждение «Неизвестный издатель». Сертификат стоит денег, и на текущем этапе я не вижу смысла его покупать. Предупреждение не спрятано: я прямо указал это на странице загрузки и внутри приложения.
Репозиторий и лицензия
Репозиторий открыт: LucidSSH.
С лицензией я пока не определился. Этот вопрос ещё изучаю. Буду рад аргументированным советам от тех, кто уже выпускал собственные приложения с открытым исходным кодом.
Зачем я об этом пишу
LucidSSH начинался как программа для моих задач. Уже сейчас он закрывает большую часть того, для чего я его создавал. Но, скорее всего, я не единственный, кому нужен простой SSH‑клиент без обязательного аккаунта, облака и лишних функций. Поэтому я решил открыть проект и рассказать о нём здесь. Особенно интересны критика архитектуры, найденные проблемы и мнение людей, которые регулярно работают с SSH. Issues в репозитории тоже открыты.
Комментарии (45)

Xelld
29.07.2026 10:40Как клиент для обучения - почему бы и нет, новичкам может будет удобно интерпретировать ошибки и получать runbook, плюс справка под рукой. Но вот попытка защищать от опасных команд выглядит спорно, мне кажется. С root можно сломать все запустив чужой бинарник, собственный скрипт или просто cat - так отучите думать о том, что вообще вводится в терминал и к чему это приведет.

Xykyma Автор
29.07.2026 10:40На самом деле я сделал настройку, где можно по очереди все отключить.
С root можно сломать все запустив чужой бинарник, собственный скрипт или просто cat - так отучите думать о том, что вообще вводится в терминал и к чему это приведет.
Вот этого как новичок я не знал. Над этим еще подумаю, т.к. есть в планах дальше его развивать понемногу.

Granulex
29.07.2026 10:40Согласен про ложную защиту: перечислить все способы убить систему невозможно – кроме rm есть find с удалением, dd, перенаправление в /dev/sda, банальный mv по корню. Единственное, что реально помогает и при этом не отучает думать, – пауза-подтверждение перед необратимой операцией, как ключ -i у rm: не запрет, а секунда на "а точно?".

MastakDev
29.07.2026 10:40А так же есть "родной" PuTTY Session manager. И быстрое подключение, и древовидная структура и другие "плюшки". Не PuTTY единым...

Xykyma Автор
29.07.2026 10:40Лично мне PuTTY показался не удобным.

Tony-Sol
29.07.2026 10:40Он и есть не удобный, не понимаю зачем putty, когда openssh спокойно устанавливается через компоненты windows и отлично работает в windows terminal.
Установил putty только чтобы сконвертировать ssh ключ в ppk формат, с которым far умеет работать (разработчики far, добавьте поддержку ed25519)

Xelld
29.07.2026 10:40Тоже никак не понимаю, откуда желание использовать все эти менеджеры в принципе.
Имхо, продуманный нейминг и DNS в принципе закрывает эту проблему. В конце-концов, есть .ssh/config и known_hosts со всеми этими дополнениями.

pushd0w
29.07.2026 10:40Хранить свои хосты на сервере какого-то вайбкодера на полрубля и ещё платить за это деньги это что-то новое, круче только секундомер по подписке из аппрстора.
Ещё и потерять свои данные если этот вайбер не оплатит сервер или уронит данные, уверен ещё и защиты никакой нет. Не удивлён откуда у нас столько утечек пд. А с таких серверов данные не утекают только потому что там клиентов полтора человека и слава богу

Xykyma Автор
29.07.2026 10:40А где я написал, что хосты хранятся на сервере и что я вообще беру деньги за программу?

iwram
29.07.2026 10:40mRemoteNG - годами проверенный софт и бесплатный, пользуйтесь на здоровье.

Vangerltd
29.07.2026 10:40Там кстати есть проблема в mRemoteNG - имя и пароль к линукс хосту передаются в открытом виде как параметры запуска putty. То есть пароли видны в логах при определённых условиях. Решается удалением сохранённого пароля и настройкой ssh ключа. Случайно на терминальном сервере обнаружили.

vitalydeynega
29.07.2026 10:40Под macos тоже собралось =)

критика всегда будет! Но оно работает! Автору спасибо! в dev не запускается =) но билдится 
Xykyma Автор
29.07.2026 10:40Я ничего не имею против критики) Для этого и выложил. А приложение далал по фану.
А где у вас на MacOS хранятся ключи? Т.к. я прописыал путь только для Windows.

igrblkv
29.07.2026 10:40Сертификат стоит денег
Есть бесплатные варианты, если вся сборка идёт прозрачно через github.
Например: https://habr.com/ru/articles/850052/

adrozhzhov
29.07.2026 10:40Putty Noodle

версия putty со вкладками, на лету меняет азмер шрифта (очень удобно при показе), дерево сессий, возможность открыть ветку табами в отдельном окне, индивидуальные настройки цветовых схем для конкретной сессии (чтобы разделять визуально разные сервера), возможность параллельной печати в пределах вкладок окна или сразу нескольких окон.

sacai
29.07.2026 10:40уже года три пользуюсь Tabby. тоже на электроне, но SFTP уже есть ) хотя при наличии Far manager под все три платформы он особо и не нужен
я на него пошел из-за многоплатформенности, т.к. по работе использую все три мира (ну ладно, MacOS реже всего остального), и желательно, чтобы интерфейс везде был одинаковый
, чтоб не думать

rionnagel
29.07.2026 10:40Есть самый обычный ssh клиент (как и scp), под windows в том числе, который работает с самыми обычными сертификатами для логина, а если страшно - внутри можно запустить screen, чтоб интерактивную сессию не потерять и под рутом можно не работать. У винды вроде есть красивенький терминал с вкладками и нескучными обоями. Не, я понимаю, что своё написать веселее. Но не то, чтобы альтернатив не было. Их полно, как платных, так и бесплатных этих менеджеров соединений.
А как вы определите опасную команду? Не только rm rf в корне проблем принесет. Всегда можно доиграться с написанием и правкой скриптов, команд, прав, конфигов. Например можно через эхо значение не туда отправить, рекурсивно во всей файловой системе права поменять, форк бомбу запустить и много ещё каких глупостей натворить, что без контекста вроде может быть и не опасно. Или на каждый chmod будет выскакивать предупреждение?

Xykyma Автор
29.07.2026 10:40Да, Вы правы, Страж - не sandbox и не пытается ловить все. Иначе пользователя можно было бы просто заспамить и превратить уведомления в ненужный шум. Список перехвата осознанно узкий. Это явные необратимые/деструктивные команды (
rm -rf,ddна устройство,mkfs, форк-бомба и т.п.), а не любое потенциально рискованное действие. Допустимchmod -R 777в списке есть, обычныйchmod— нет.echoс редиректом в произвольный конфиг тоже не ловится, кроме записи в SSH-конфиг, чтобы не потерять доступ к серверу.Страж я делал не как замену головы на плечах, а как распознавание и предупреждение для новичка. Которому например нужно 1 раз настроить какой-нибуль свой сервер и он это делает по инструкции в интернете. И просто делает копипаст команд. Вот тут Страж будет полезен.

mushroomsnikita
29.07.2026 10:40Если человек не понимает последствия команды, дополнительное окно с подтверждением его не спасет

BotBot123
29.07.2026 10:40Это всё очень круто, но habr не площадка для рекламы своего мусора в духе я создал свой {вставь то что уже существует}. Почему я должен в ленте новостей видеть этот шлак.

Borodatus
29.07.2026 10:40А как же богоподобный MobaxTerm ? Ничего удобнее пока не видел.

durnoy
29.07.2026 10:40Тоже, пока читал статью, все думал "А как же MobaXTerm?" -- а потом дочитал до места, где его называют слишком сложным для новичка.
я бы понял аргумент, что MobaXTerm не open source.

Xykyma Автор
29.07.2026 10:40"Сложный для новичка" - это было сугубо мое личное мнение. Мне он показался действительно сложноватым в интерфейсе.

EljerboHabr
29.07.2026 10:40тоже им всегда пользуюсь, единственный минус для меня что нельзя в его терминал скопировать длинный текст команд

LeshaRB
29.07.2026 10:40Portable планируется?

Xykyma Автор
29.07.2026 10:40Да, мне только нужно разобраться с местом хранения данных хостов в portable версии

LeshaRB
29.07.2026 10:40Ну по аналогии с другими программами https://code.visualstudio.com/docs/setup/portable
Например в Vscode смотрел на наличие папки data в корне

Sham_The_Steppenwolf
29.07.2026 10:40И чем же вас RDM от Devolutions то не устроил?
И про screen и развлечения тоже верно сказали коллеги

Sham_The_Steppenwolf
29.07.2026 10:40И к MS VS Code хренова толпа плагинов

Sham_The_Steppenwolf
29.07.2026 10:40Нет, если из любви к искусству, то снимаю шляпку, а если хотели кого то впечатлить, то это не сюда и не о том

Xykyma Автор
29.07.2026 10:40Никого не хотел впечатлить. Делал для себя и решил поделиться. Вдруг кому-то будет полезна.
hssergey
А был же вроде стандартный Windows Terminal с вкладками и всем прочим...
Xykyma Автор
Да, Вы правы. Windows Terminal умеет вкладки делать. Но там нет определения потенциально опасных команд, объяснения ошибок. Мне как новичку в этом, это было бы очень нужно.
rPman
Как вы определяете опасную команду? Например
Будет считаться тем же что выдаст rm -rf /root ? Отличаете ли вы stdout от stderr?
p.s. считаю такой помощник вредным и фактически бесполезным
Xykyma Автор
Да, вы правы. Я проверил. Exit code детектор проверяет честно, но текст ошибки сверяется просто с тем, что напечаталось в терминале — без разделения stdout/stderr (в интерактивной SSH-сессии его толком и не получить). Так что
echo Permission deniedсам по себе безобиден (exit code 0, детектор не сработает), но если специально подставить ненулевой код рядом — да, текст обманет паттерн и покажется то же объяснение, что для настоящей ошибки.Занесу себе в список на исправление.
rPman
не вижу смысла это менять, код ошибки более чем достаточен
p.s. ssh user@site "rm -rf /root;echo yoo"
по уму не должна возвращать код ошибки (ведь это одна команда а не две) но как я уже говорил сам функционал не имеет особого смысла и расширять его возможности тоже