Как навести порядок в десятках серверов и забыть про ручную правку SSH конфига

24 авг 2026
653
35
2
2 недели

У каждого, кто регулярно поднимает виртуалки в облаках или держит домашний сервер, файл ~/.ssh/config со временем превращается в свалку. Там остаются старые IP-адреса от давно удалённых инстансов Hetzner, забытые алиасы и цепочки ProxyJump. После очередного прогона Terraform приходится снова открывать консоль облака, вытаскивать IP и руками дописывать хост.

Недавно наткнулся на purple — опенсорсный TUI-менеджер для SSH, написанный на Rust. Автор проекта столкнулся ровно с той же рутиной и решил собрать удобный терминальный интерфейс, который берёт синхронизацию инфраструктуры на себя.

purple terminal SSH client demo

Что под капотом и как это устроено

Главная фишка утилиты в том, что она не пытается изобрести свой закрытый формат или спрятать настройки в SQLite базу. Программа напрямую парсит ваш ~/.ssh/config, аккуратно сохраняя комментарии, отступы, директивы Include и любые нестандартные параметры. Все изменения пишутся обратно в тот же файл.

Интерфейс построен на библиотеке Ratatui. Это быстрый, отзывчивый TUI в виде одного бинарника без демонов и фоновых сервисов. В репозитории уже больше 7300 тестов, исходники открыты под лицензией MIT.

Реклама

purple host list with detail panel

Синхронизация с облачными провайдерами

Достаточно указать API-токен провайдера, и список инстансов подтягивается в конфиг автоматически. Сейчас поддерживается 17 платформ, включая AWS, GCP, Azure, Hetzner, DigitalOcean, Proxmox и Teleport. Можно подключать сразу несколько аккаунтов.

purple cloud provider list

Когда вы гасите сервер, утилита помечает его устаревшим, поэтому в списке не висят мёртвые адреса. В карточке каждого хоста видна подробная сводка: статус доступности, маршрут подключения, история активности за год, теги и запущенные сервисы.

Быстрый переход и поиск

Если нажать :, открывается строка быстрого поиска в стиле палитры команд (как Cmd+K в современных редакторах). Поиск ищет по названию хоста, имени пользователя, параметрам ProxyJump и тегам. Доступны фильтры вроде user:, proxy: или tag:, которые помогают отсеять лишнее за пару нажатий.

purple Jump bar

Управление контейнерами без агентов

Отдельная удобная вещь — вкладка с контейнерами Docker и Podman по всей вашей инфраструктуре.

purple Containers tab

Программа не требует ставить сторонние агенты или открывать веб-порты на удалённых серверах. Всё взаимодействие идёт через стандартные SSH-команды. Прямо из интерфейса можно:

  • смотреть единый список контейнеров со всех серверов
  • читать логи в реальном времени
  • перезапускать и останавливать контейнеры
  • проваливаться внутрь контейнера через exec
  • перезапускать сервисы из Docker Compose по отдельности

Мониторинг туннелей и запуск команд

Обычно SSH-туннели висят в фоне невидимыми процессами. Здесь каждый Local, Remote и Dynamic SOCKS форвардинг отображается наглядно: видно скорость передачи данных, активность каналов, время работы и даже конкретный локальный процесс, который гонит трафик.

purple tunnel detail

Если нужно раскатать команду сразу на группу серверов, пригодится раздел сниппетов. Перед запуском утилита показывает зону охвата (blast radius), чтобы случайно не зацепить лишние инстансы, а после сохраняет историю успешных и неудавшихся запусков.

purple snippet detail

Работа с ключами и Vault

В отдельной вкладке собраны все ключи из каталога ~/.ssh. Утилита оценивает их криптографическую стойкость, показывает случайный рисунок randomart и список серверов, куда ключ подходит. Нажатием клавиши p можно раскатать публичный ключ по серверам без ручных циклов с ssh-copy-id.

purple key detail

Для тех, кто использует HashiCorp Vault, есть поддержка короткоживущих SSH-сертификатов. В интерфейсе выводится полоса оставшегося времени жизни сертификата, поэтому внезапно протухший доступ не станет сюрпризом.

purple Vault SSH

Из других полезных мелочей: встроенный двухпанельный файловый менеджер для передачи файлов по SCP, интеграция с менеджерами паролей (1Password, Bitwarden, системный Keychain) и собственный MCP-сервер для подключения к AI-ассистентам вроде Claude Code или Cursor.

Как установить

Быстрая установка через скрипт:

curl -fsSL getpurple.sh | sh

Или через пакетные менеджеры:

# macOS (Homebrew)
brew install erickochen/purple/purple

# Cargo
cargo install purple-ssh

# Arch Linux (AUR)
yay -S purple-bin

После установки запускаем команду purple. На любом экране можно нажать ?, чтобы открыть справку по горячим клавишам.

Кому пригодится

Проект отлично закрывает разрыв между простыми CLI-командами и тяжелыми платными клиентами вроде Termius. Если вы часто жонглируете виртуалками в облаках, держите homelab или просто устали вручную перебирать IP-адреса серверов, purple здорово экономит время и держит конфиги в чистоте.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.