Со временем у меня появилось несколько серверов: VPS, домашний NAS и ещё пара машин под разные задачи. Для подключения я использовал PuTTY. Он работает, но управлять несколькими серверами в нём неудобно. Сессии хранятся в реестре Windows, список хостов плоский, вкладок нет. Чтобы открыть два сервера, нужны два отдельных окна.

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

Мне не хотелось регистрироваться и загружать список своих серверов в облако ради обычного SSH‑подключения. Поэтому я начал делать собственный клиент - LucidSSH. Это не попытка собрать ещё один комбайн для системных администраторов. Мне нужен был простой локальный SSH‑клиент с несколькими дополнительными функциями: защитой от опасных команд и понятными объяснениями ошибок.

Я не занимаюсь администрированием каждый день. Поэтому делал программу прежде всего для таких же пользователей, как я: тех, кто впервые настраивает VPS, NAS, Raspberry Pi или небольшой домашний сервер. Разрабатываю LucidSSH в свободное от основной работы время.

 Главный экран LucidSSH: список серверов, терминал и встроенный каталог команд
Главный экран LucidSSH: список серверов, терминал и встроенный каталог команд

Почему не PuTTY и не Termius

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

Три основные функции

Страж опасных команд

Страж проверяет команду до того, как она уйдёт на сервер. Он реагирует на rm -rf, dd и другие команды, которые могут удалить данные или повредить систему. Для подтверждения недостаточно нажать кнопку. Нужно вручную ввести имя файла, каталога или устройства, с которым будет работать команда. Это медленнее обычного диалога с кнопкой «Продолжить». Но стандартные предупреждения быстро перестают замечать. Их подтверждают автоматически, не читая текст. Страж можно отключить полностью или только для конкретного хоста.

 Перед удалением LucidSSH просит вручную подтвердить имя затронутого объекта
Перед удалением LucidSSH просит вручную подтвердить имя затронутого объекта

Офлайн‑детектор ошибок

Детектор работает локально. Без интернета и без 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)


  1. hssergey
    29.07.2026 10:40

    А был же вроде стандартный Windows Terminal с вкладками и всем прочим...


    1. Xykyma Автор
      29.07.2026 10:40

      Да, Вы правы. Windows Terminal умеет вкладки делать. Но там нет определения потенциально опасных команд, объяснения ошибок. Мне как новичку в этом, это было бы очень нужно.


      1. rPman
        29.07.2026 10:40

        Как вы определяете опасную команду? Например

        echo Permission denied

        Будет считаться тем же что выдаст rm -rf /root ? Отличаете ли вы stdout от stderr?

        p.s. считаю такой помощник вредным и фактически бесполезным


        1. Xykyma Автор
          29.07.2026 10:40

          Да, вы правы. Я проверил. Exit code детектор проверяет честно, но текст ошибки сверяется просто с тем, что напечаталось в терминале — без разделения stdout/stderr (в интерактивной SSH-сессии его толком и не получить). Так что echo Permission denied сам по себе безобиден (exit code 0, детектор не сработает), но если специально подставить ненулевой код рядом — да, текст обманет паттерн и покажется то же объяснение, что для настоящей ошибки.

          Занесу себе в список на исправление.


          1. rPman
            29.07.2026 10:40

            не вижу смысла это менять, код ошибки более чем достаточен

            p.s. ssh user@site "rm -rf /root;echo yoo"

            по уму не должна возвращать код ошибки (ведь это одна команда а не две) но как я уже говорил сам функционал не имеет особого смысла и расширять его возможности тоже


  1. Xelld
    29.07.2026 10:40

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


    1. Xykyma Автор
      29.07.2026 10:40

      На самом деле я сделал настройку, где можно по очереди все отключить.

      С root можно сломать все запустив чужой бинарник, собственный скрипт или просто cat - так отучите думать о том, что вообще вводится в терминал и к чему это приведет.

      Вот этого как новичок я не знал. Над этим еще подумаю, т.к. есть в планах дальше его развивать понемногу.


    1. Granulex
      29.07.2026 10:40

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


  1. MastakDev
    29.07.2026 10:40

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


    1. Xykyma Автор
      29.07.2026 10:40

      Лично мне PuTTY показался не удобным.


      1. Tony-Sol
        29.07.2026 10:40

        Он и есть не удобный, не понимаю зачем putty, когда openssh спокойно устанавливается через компоненты windows и отлично работает в windows terminal.

        Установил putty только чтобы сконвертировать ssh ключ в ppk формат, с которым far умеет работать (разработчики far, добавьте поддержку ed25519)


        1. Xelld
          29.07.2026 10:40

          Тоже никак не понимаю, откуда желание использовать все эти менеджеры в принципе.

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


  1. pushd0w
    29.07.2026 10:40

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

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


    1. Xykyma Автор
      29.07.2026 10:40

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


  1. iwram
    29.07.2026 10:40

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


    1. Xykyma Автор
      29.07.2026 10:40

      Спасибо за наводку. Он не попадался мне, когда искал.


    1. Vangerltd
      29.07.2026 10:40

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


  1. vitalydeynega
    29.07.2026 10:40

    Под macos тоже собралось =)

    критика всегда будет! Но оно работает! Автору спасибо! в dev не запускается =) но билдится
    критика всегда будет! Но оно работает! Автору спасибо! в dev не запускается =) но билдится


    1. Xykyma Автор
      29.07.2026 10:40

      Я ничего не имею против критики) Для этого и выложил. А приложение далал по фану.

      А где у вас на MacOS хранятся ключи? Т.к. я прописыал путь только для Windows.


  1. igrblkv
    29.07.2026 10:40

    Сертификат стоит денег

    Есть бесплатные варианты, если вся сборка идёт прозрачно через github.

    Например: https://habr.com/ru/articles/850052/


    1. Xykyma Автор
      29.07.2026 10:40

      Ага, спасибо. Я видел такую возможность. Но пока не вникал еще.


  1. adrozhzhov
    29.07.2026 10:40

    Putty Noodle

    https://sourceforge.net/projects/putty-nd/

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


    1. Xykyma Автор
      29.07.2026 10:40

      Спасибо за наводку. Посмотрю.


  1. sacai
    29.07.2026 10:40

    уже года три пользуюсь Tabby. тоже на электроне, но SFTP уже есть ) хотя при наличии Far manager под все три платформы он особо и не нужен

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


    1. Xykyma Автор
      29.07.2026 10:40

      Да, тоже его видел) Но у него нет детектора ошибок и опасных команд.


  1. rionnagel
    29.07.2026 10:40

    Есть самый обычный ssh клиент (как и scp), под windows в том числе, который работает с самыми обычными сертификатами для логина, а если страшно - внутри можно запустить screen, чтоб интерактивную сессию не потерять и под рутом можно не работать. У винды вроде есть красивенький терминал с вкладками и нескучными обоями. Не, я понимаю, что своё написать веселее. Но не то, чтобы альтернатив не было. Их полно, как платных, так и бесплатных этих менеджеров соединений.

    А как вы определите опасную команду? Не только rm rf в корне проблем принесет. Всегда можно доиграться с написанием и правкой скриптов, команд, прав, конфигов. Например можно через эхо значение не туда отправить, рекурсивно во всей файловой системе права поменять, форк бомбу запустить и много ещё каких глупостей натворить, что без контекста вроде может быть и не опасно. Или на каждый chmod будет выскакивать предупреждение?


    1. Xykyma Автор
      29.07.2026 10:40

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

      Страж я делал не как замену головы на плечах, а как распознавание и предупреждение для новичка. Которому например нужно 1 раз настроить какой-нибуль свой сервер и он это делает по инструкции в интернете. И просто делает копипаст команд. Вот тут Страж будет полезен.


  1. mushroomsnikita
    29.07.2026 10:40

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


  1. BotBot123
    29.07.2026 10:40

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


  1. Borodatus
    29.07.2026 10:40

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


    1. durnoy
      29.07.2026 10:40

      Тоже, пока читал статью, все думал "А как же MobaXTerm?" -- а потом дочитал до места, где его называют слишком сложным для новичка.

      я бы понял аргумент, что MobaXTerm не open source.


      1. Xykyma Автор
        29.07.2026 10:40

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


    1. EljerboHabr
      29.07.2026 10:40

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


  1. Houl
    29.07.2026 10:40

    WinSSHTerm


  1. LeshaRB
    29.07.2026 10:40

    Portable планируется?


    1. Xykyma Автор
      29.07.2026 10:40

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


      1. LeshaRB
        29.07.2026 10:40

        Ну по аналогии с другими программами https://code.visualstudio.com/docs/setup/portable

        Например в Vscode смотрел на наличие папки data в корне


        1. Xykyma Автор
          29.07.2026 10:40

          Во, спасибо. Посмотрю как там сделано.


  1. Sham_The_Steppenwolf
    29.07.2026 10:40

    И чем же вас RDM от Devolutions то не устроил?

    И про screen и развлечения тоже верно сказали коллеги


    1. Sham_The_Steppenwolf
      29.07.2026 10:40

      И к MS VS Code хренова толпа плагинов


      1. Sham_The_Steppenwolf
        29.07.2026 10:40

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


        1. Xykyma Автор
          29.07.2026 10:40

          Никого не хотел впечатлить. Делал для себя и решил поделиться. Вдруг кому-то будет полезна.


  1. zabit
    29.07.2026 10:40

    Очень симпатично, под mac собирается на ура! единственное что не хватило то поддержка jump хоста.


    1. Xykyma Автор
      29.07.2026 10:40

      Спасибо за комментарий. Поддержку Jump хоста планирую в близжайшей версии сделать.


  1. serresident
    29.07.2026 10:40

    Есть же moba xterm на все случаи в жизни