Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

SSH-commander: умная панель управления VPS со встроенным AI-агентом

SSH-commander: умная панель управления VPS со встроенным AI-агентом

Подробности изложены в материале первоисточника. Я разработал для собственных нужд утилиту ssh-commander, объединяющую в едином интерфейсе полноценный терминал, файловый менеджер, средства мониторинга Docker и интеллектуального AI-агента. Этот инструмент позволяет управлять удаленными серверами в ручном режиме, а при необходимости подключать нейросеть для анализа логов, поиска файлов и генерации команд. Приложение распространяется по свободной лицензии MIT, не требует оформления платных подписок и запускается локально через контейнеры.

Интерфейс панели открывается в обычном веб-браузере, а для установления связи с целевыми машинами используется стандартный протокол SSH. Чтобы оценить работу утилиты в деле, я развернул отдельный тестовый стенд с имитацией рабочих нагрузок.

Конфигурационный файл docker-compose для запуска утилиты
Конфигурационный файл для развертывания системы локально.
Структура каталогов проекта ssh-commander
Исходная структура проекта на Node.js и TypeScript.
Окно настроек интеграции с API провайдеров искусственного интеллекта
Раздел настроек API для подключения языковых моделей.

Зачем я создал этот инструмент

Необходимость в разработке возникла в момент, когда потребовалось перенести несколько рабочих веб-проектов на новую аппаратную площадку. Чтобы минимизировать риски и ничего не упустить, я задействовал ИИ-помощника непосредственно на старом сервере, поручив ему проанализировать текущую конфигурацию и сформировать подробный отчет для миграции.

Реклама

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

Тестовый стенд со скриншотами ответов модели Deepseek
Для демонстрации работы поднят отдельный стенд с реальными ответами Deepseek.

Так родилась архитектура ssh-commander. Левая часть экрана отведена под выбор серверов и навигацию, верхняя панель переключает разделы (терминал, файловую структуру и другие модули), а справа располагается постоянное окно чата с искусственным интеллектом. Любой фрагмент системного лога или истории команд можно отправить в чат одним щелчком мыши.

Архитектурные возможности панели

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

Встроенный терминал и файловый менеджер

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

Переключение с файлового менеджера на встроенный терминал
Переключение с файлового менеджера на терминал с сохранением текущего диалога.

Файловый менеджер функционирует поверх протокола SFTP, позволяя скачивать и загружать объекты, редактировать текстовые файлы с подсветкой синтаксиса и отслеживать растущие логи в реальном времени. Встроенный анализатор дискового пространства помогает быстро находить тяжелые директории и файлы.

Управление Docker и системными службами

Отдельный блок предназначен для работы с контейнерами Docker, образами, стеками Compose, логами и внутренними терминалами контейнеров. Кроме того, предусмотрены специализированные интерфейсы для мониторинга баз данных PostgreSQL и MySQL, веб-сервера Nginx, менеджера systemd, сетевых портов и планировщика cron.

Для сохранения контекста между сеансами у ассистента предусмотрена локальная память в виде файла MEMORY.md, куда записываются особенности развертывания проектов.

Реклама
Предупреждение AI-агента об удалении файла на тестовом сервере
Агент предлагает удалить резервную копию PDF, требуя подтверждения операции.

Практический кейс: свободное место и сломанный бэкап

В процессе реальной эксплуатации на одном из серверов неожиданно исчерпалось свободное дисковое пространство. AI-агент оперативно обнаружил дубликаты объемных PDF-документов, предложив удалить их для высвобождения полутора гигабайт памяти, а заодно перенести работу с документами в облачное хранилище Yandex S3.

Мы успешно выполнили очистку и настроили выгрузку в S3. Однако перед окончательным удалением локальных копий выяснилось, что автоматическое резервное копирование медиафайлов в облако перестало работать, хотя ранее функционировало стабильно.

Ассистент быстро выявил корень проблемы: после удаления дубликатов процесс бэкапа попытался синхронизировать изменения, но у сервисной учетной записи отсутствовали необходимые права на удаление файлов в S3. Ошибка прерывала процедуру, из-за чего резервные копии перестали обновляться.

Разграничение автоматических и подтверждаемых действий

Некоторые операции помощник выполняет самостоятельно, тогда как критические изменения требуют обязательного одобрения со стороны пользователя.

Права доступа и безопасность команд

Чтение стандартных файлов, просмотр списков запущенных контейнеров или проверка свободного места на диске выполняются агентом автономно. Запись файлов, перезапуск служб и выполнение произвольных команд требуют ручного подтверждения через специальную плашку в нижней части интерфейса.

Для безопасного чтения используется ограниченный список разрешенных команд, исключающий использование опасных конструкций, перенаправлений и подстановок. Сложные задачи выполняются в режиме предварительного планирования, где модель сначала формирует общую стратегию действий.

Технические ограничения системы

Важно помнить, что нейросеть может ошибаться в синтаксисе или логике предложенных команд, поэтому ручная проверка результатов остается обязательной. При использовании внешних API-провайдеров прочитанные логи и файлы передаются на сторонние серверы, хотя встроенные фильтры стараются скрывать обнаруженные секретные ключи.

Как развернуть ssh-commander

Для запуска приложения требуются установленный Docker с поддержкой Compose v2 и наличие SSH-доступа к целевым серверам под управлением Linux. На хостах с macOS или Linux развертывание выполняется стандартной последовательностью команд.

После запуска контейнера достаточно открыть веб-интерфейс в браузере, задать защитный пароль и добавить первый сервер, указав его IP-адрес или доменное имя. В настройках задается API-ключ выбранного провайдера для работы AI-модели, после чего система полностью готова к администрированию.

01.