Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/max-rh/sshelf
Утилиты общего назначенияСетевая безопасностьУтилиты и фреймворкиАутентификацияИнструмент Удаленного Доступа
GitHubmax-rh/sshelf

sshelf

Быстрый терминальный интерфейс для ваших SSH-хостов: нечёткий поиск и подключение в два нажатия клавиш, двухпанельная передача файлов по SFTP и фоновое перенаправление портов. Ведёт собственную базу хостов и генерирует команду ssh — никогда не изменяет ~/.ssh/config.

Репозиторий
66893 дней назадПроверено Kitploit
Сайт

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

sshelf

Нечёткий поиск по вашим SSH-хостам и подключение в два нажатия клавиш.

sshelf ведёт собственный список хостов, собирает команду ssh за вас, а затем уходит с дороги. Он передаёт терминал настоящему OpenSSH и никогда не трогает ~/.ssh/config.

crates.io CI docs built with Ratatui MSRV license

sshelf: введите несколько букв — и команда ssh готова

Установка

macOS и Linux, x86_64 и arm64. Готовым пакетам не нужен Rust-тулчейн. Во время работы sshelf требует OpenSSH 8.4+ — именно оттуда берётся автоподстановка пароля.

Homebrew (macOS или Linux):

root@kitploit:~
brew install max-rh/tap/sshelf

Установщик через shell (готовый бинарник, определяет вашу платформу):

root@kitploit:~
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-rh/sshelf/releases/latest/download/sshelf-installer.sh | sh
Другие варианты (Debian/Ubuntu · Fedora/RHEL · Gentoo · cargo)

Debian/Ubuntu: возьмите .deb из последнего релиза, затем sudo apt install ./sshelf_*_amd64.deb (или *_arm64.deb).

Fedora / RHEL / Rocky / openSUSE: возьмите .rpm (статическая сборка, работает на любом RPM-дистрибутиве) из последнего релиза, затем sudo dnf install ./sshelf-*.x86_64.rpm (или .aarch64.rpm).

Gentoo: оверлей, поддерживаемый сообществом (неофициальный, спасибо @masterwolf-git). Выполните eselect repository enable masterwolf && emerge --sync && emerge --ask app-admin/sshelf.

Cargo (с crates.io; нужен Rust 1.88+): cargo install sshelf.

Автодополнение в shell поставляется с каждым пакетом. Откройте новый shell после установки. На Linux секреты используют бэкенд Secret Service на чистом Rust (без зависимостей сборки libdbus/OpenSSL).

Полные детали и настройка автодополнения: Руководство по установке.

Зачем я это создал

У меня несколько десятков машин (домашний сервер, пара VPS, несколько машин за бастионом), и я постоянно вводил ssh -J bastion -i ~/.ssh/some-key -p 2222 user@host по памяти или искал это в истории shell. Каждый SSH-менеджер, который я пробовал, хотел либо владеть ~/.ssh/config, либо завести мне аккаунт и синхронизировать хосты через чей-то сервер. Мне не нужно было ни то, ни другое. Мне нужен был лаунчер, который ведёт собственный список, собирает команду и уходит с дороги. А ещё место, где можно хранить пароли для тех немногих хостов, которые не могут использовать ключи, — и никогда не класть их в файл. Поэтому я его создал.

Что вы получаете

Нечёткий лаунчер

Вводите текст — список фильтруется. Enter подключает. Ваши самые используемые хосты сами всплывают наверх (frecency: частота использования, затухающая со временем), а tag:prod / site:homelab сужают список дальше. Ctrl-y копирует собранную команду вместо её запуска. Из shell sshelf prod-web подключается по имени, а sshelf - переподключается к последнему хосту — оба варианта без открытия TUI.

Лаунчер sshelf, фильтрующий три хоста по мере ввода

Он делает exec() в ваш ssh

sshelf собирает argv из записи хоста, закрывает свой UI и затем заменяет себя OpenSSH. Между вами и сессией нет никакой обёртки: настоящий TTY, ваш ssh, ваши флаги без конфига. Когда сессия завершается, вы возвращаетесь в свой shell, а не в меню. Команда, которую он запускает, — ровно та, что показывает Ctrl-y. Как собирается команда.

Двухпанельная передача файлов

Ctrl-t открывает ваши файлы слева и файлы хоста справа через одно аутентифицированное соединение. Space отмечает, Ctrl-a отмечает всё, что показывает фильтр, Ctrl-s отправляет весь набор в любую сторону, F7 создаёт каталог. Имя, которое уже есть у получателя, пропускается — никогда не перезаписывается.

Экран двухпанельной передачи с двумя отмеченными записями

Фоновые пробросы портов

Ctrl-f открывает Local, Remote или SOCKS-туннель, который продолжает работать после выхода из sshelf и после закрытия терминала. F4 показывает список всех туннелей на всех хостах и останавливает выбранный. Они отслеживаются по pid и сверяются с реально запущенными процессами, так что в списке ничего не задерживается после завершения. Никаких демонов и супервизоров.

Менеджер пробросов, показывающий два живых туннеля

Режим tmux

Задайте tmux = "window" или "pane" — и Enter откроет хост в новом окне tmux (названном по имени хоста) или в новой панели вместо замены sshelf. Завершите сессию — и пикер всё ещё на месте и всё ещё работает.

Enter открывает хост в новом окне tmux; sshelf продолжает работать

Сайты и теги

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

Менеджер сайтов с тремя сайтами и их общими настройками по умолчанию

Пароли без sshpass

Для хостов, которые не могут использовать ключи, sshelf хранит пароль в системной связке ключей (или в зашифрованном age-хранилище на машине без головы) и передаёт его через SSH_ASKPASS, когда ssh запрашивает. Он отвечает только на запросы, имеющие форму настоящего пароля или passphrase, так что сервер не может выманить секрет похожим текстом. Пароль никогда не лежит в файле, никогда не виден в ps, никогда не попадает в командную строку. Хосты, которым также нужен код подтверждения, получают запрос на него до начала подключения. Пароли, ключи и 2FA · Безопасность.

Форма добавления хоста в разделе аутентификации с выбором ключа

Экспорт в ssh_config

sshelf export записывает один фрагмент ssh_config от себя и даёт вам одну строку Include, которую вы сами вставляете в ~/.ssh/config. После этого обычные ssh, scp, rsync, git и всё, что читает SSH-конфиг (VS Code Remote-SSH, JetBrains Gateway), находят ваши хосты sshelf по имени, включая бастион. Файл обновляется при каждом изменении хостов. sshelf по-прежнему ничего не пишет в ~/.ssh.

sshelf export записывает фрагмент ssh_config, и сам фрагмент

Импорт того, что уже есть

sshelf import читает ~/.ssh/config строго в режиме только для чтения и копирует хосты, которые может смоделировать. sshelf import --tailscale запускает ваш собственный CLI tailscale и превращает вашу tailnet в доступные для поиска хосты: с именами MagicDNS, tailnet как сайт и ACL-тегами как тегами. Оба режима только добавляют, так что повторный запуск всегда безопасен, и ни один из них не происходит, пока вы об этом не попросите.

sshelf doctor

Одна команда на случай, когда что-то не работает. Она проверяет версию вашего OpenSSH, открывается ли бэкенд секретов, парсится ли hosts.toml, указывают ли хосты на несуществующий сайт, отсутствует ли сокет агента и не разошёлся ли экспорт. Она называет исправление для каждой проблемы. Только чтение, возвращает 1, если что-то не удалось, и никогда не связывается с хостом.

sshelf doctor со списком проверок и одним предупреждением

Сравнение

Составлено в сентябре 2026 года по README каждого проекта (а для Termius — по его сайту). Ячейка «не указано» означает, что в документации проекта об этом не сказано.

sshelfpurpleomnysshVoltiusTermius
Где работаеттерминал (TUI)терминал (TUI)терминал (TUI) + десктоп-приложениедесктоп-приложение (Tauri)десктоп + мобильное приложение
Редактирует ~/.ssh/configникогдада, на местенет, читает при запускен/д (своё хранилище)н/д (своё хранилище)
Требуется аккаунтнетнетнетдля синхронизации в реальном временида
Хранит токены для других сервисовнетда, по одному на облачного провайдеранетда, для синхронизациине указано
Собственные сетевые вызовынетсинхронизация облачных провайдеровопрос метрик хостовсинхронизация, обновления, метрики хостовсинхронизация
Хранение секретовваша системная связка ключей / age-хранилищесвязка ключей + менеджеры паролейне указаноего E2EE-хранилищеего зашифрованное хранилище
Подключениеexec() в ваш sshзапускает вашу команду sshвстроенный терминалвстроенный терминалвстроенный терминал
Проброс портовда, переживают выходда, живой мониторингне указанодада
Передача файловдвухпанельный SFTPразделённые панелидвухпанельный SFTPдвухпанельный, drag & dropSFTP
Контейнеры / дашборды метрикнетдададане указано
Командная работанетнетнетплатные тарифыплатные тарифы
ПлатформыmacOS, LinuxmacOS, LinuxmacOS, Linux, Windows, TermuxWindows, macOS, LinuxmacOS, Windows, Linux, iOS, Android
ЛицензияMIT / Apache-2.0MITApache-2.0AGPL-3.0проприетарная

У sshelf нет дашбордов, управления контейнерами, командной работы и сборки под Windows. Первые три — осознанный выбор, и PRIVACY.md объясняет почему: каждая из этих функций означала бы, что sshelf хранит что-то ваше или сам с чем-то разговаривает.

Чего он никогда не будет делать

  • Никакой телеметрии. Ни аналитики, ни отчётов о сбоях, ни проверки обновлений.
  • Никакого аккаунта, облака или сервера синхронизации. Регистрироваться негде.
  • Никаких хранимых токенов. sshelf никогда не хранит облачные или API-учётные данные.
  • Никаких собственных сетевых вызовов. Единственный трафик — это SSH-сессия, которую вы запросили.
  • Никогда не редактирует ~/.ssh/config и ничего не пишет в ~/.ssh.
  • Никаких секретов в hosts.toml. Этот файл безопасно коммитить и публиковать.
  • Никакого Electron. Один бинарник, около четырёх мегабайт.

PRIVACY.md описывает, что он читает, пишет, запускает и отправляет. SECURITY.md — это модель угроз для хранимых секретов.

Первые пять минут

root@kitploit:~
sshelf                        # запуск TUI (Ctrl-a добавляет первый хост)
sshelf import --dry-run       # предпросмотр импорта только для чтения из ~/.ssh/config
sshelf import                 # ...выполнить
sshelf import --tailscale     # ...или импортировать всю вашу tailnet Tailscale
sshelf prod-web               # подключиться напрямую к сохранённому хосту (без TUI)
sshelf -                      # переподключиться к недавно использованному хосту
sshelf list tag:prod --json   # вывод для скриптов (поля + команда ssh)
sshelf print-command db       # вывести команду ssh вместо её запуска
sshelf export                 # Include-файл, чтобы обычные ssh/scp/VS Code видели ваши хосты
sshelf doctor                 # что-то не работает? проверьте настройку и узнайте исправление

В TUI: вводите для фильтрации (плюс tag:NAME / site:NAME) и нажимайте Enter для подключения. F1 показывает все клавиши.

Документация

Руководство пользователя охватывает всё: Быстрый старт · Справочник CLI · Конфигурация · FAQ · sshelf doctor. Есть страницы по каждой функции: передача файлов, проброс портов, сайты и теги, пароли и 2FA и экспорт SSH-конфига. Архитектура и проектные решения — в docs/, а для машин есть llms.txt.

Вопросы и идеи

Спрашивайте, предлагайте функции или показывайте, что вы построили с его помощью, в GitHub Discussions. Вклад приветствуется. Начните с CONTRIBUTING.md.

Поддержка

Если sshelf вам полезен, будет признателен за Bitcoin-пожертвование (совершенно необязательно):

Donate BTC

Bitcoin: bc1qcdeyhpwq76u97dhymx876n49uq85z4y3ccrpje

Лицензия

Двойное лицензирование: либо MIT, либо Apache-2.0, на ваш выбор (норма экосистемы Rust).

Скачать инструмент