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

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

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

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

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

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

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

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

Для тех, кто использует HashiCorp 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 здорово экономит время и держит конфиги в чистоте.
