3.7 KiB
ssh-access-tui
Консольный (TUI) инструмент для администрирования Linux jump-хоста: заводит
пользователей, у которых есть только проброс портов (-L/-D) и прыжок
(ProxyJump) к явно разрешённому списку внутренних хостов — без
интерактивного шелла. Управляет группами доступа, генерирует и раздаёт
зашифрованные архивы с ключом/конфигом/инструкцией, блокирует уволенных,
пишет журнал подключений и хранит всю конфигурацию в git для бэкапа/переезда.
Почему не веб-панель: инструмент требует root (создание пользователей,
правка authorized_keys и sshd_config). Веб-бэкенд с такими правами —
новый слушающий процесс с TLS/сессиями/CSRF на и так критичном хосте. TUI
работает поверх уже существующего SSH+sudo доступа админа и не добавляет
новой сетевой поверхности атаки.
Требования на jump-хосте
- Linux с systemd и OpenSSH ≥ 7.2 (
restrict,permitopen=вauthorized_keys; актуальные Debian/Ubuntu/RHEL этому условию отвечают). ssh-keygen,7z(пакетp7zip-full),git— устанавливаются через системный пакетный менеджер.- Go ≥ 1.24 — только для сборки бинарника (можно собрать на другой машине).
Установка
sudo apt-get install -y p7zip-full git # или аналог для вашего дистрибутива
sudo ./scripts/install.sh
Скрипт собирает бинарник, ставит systemd-юниты (сборщик журнала подключений
и часовой git-бэкап состояния), создаёт каталоги /var/lib/ssh-access-tui/*
и Match-блок в /etc/ssh/sshd_config.d/50-ssh-access-tui.conf.
После установки настройте git-бэкап на внешний репозиторий (см. docs/ARCHITECTURE.md):
git -C /var/lib/ssh-access-tui/state remote add origin <ssh-или-https-url>
Запуск
sudo ssh-access-tui
Полное руководство по экранам и типовым сценариям — в docs/ADMIN_GUIDE.md. Обоснование архитектурных решений и модель угроз — в docs/ARCHITECTURE.md.
Структура репозитория
cmd/ssh-access-tui/ точка входа (TUI, install, audit-tail)
internal/model/ типы данных (Group, Host, User, State)
internal/store/ YAML-состояние в git-репозитории, файловая блокировка
internal/sysadm/ useradd/usermod, authorized_keys, sshd Match-блок
internal/keymgr/ генерация ключей, клиентский config, .7z архив
internal/audit/ журнал подключений (JSONL) + "кто сейчас в сети"
internal/ui/ bubbletea TUI
scripts/ install.sh, systemd-юниты, скрипт бэкапа
docs/ руководство администратора, архитектура/модель угроз