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

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

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

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

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

Категории

Все категории
Loading categories
secrets-manager-rs — Инструмент командной строки для безопасного резервного копирования, восстановления и проверки секретов с использованием интероперабельных стандартов, таких как шифрование age и coreutils, обеспечивающий долгосрочную доступность без привязки к вендору. | Kitploit
Инструменты/GitHubGitHub/fran314/secrets-manager-rs
Инструменты шифрования/дешифрованияВосстановление ДанныхБезопасность облачных средDevSecOpsУтилиты и фреймворкиАутентификация
GitHubfran314/secrets-manager-rs

secrets-manager-rs

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
212123 месяцев назадПроверено Kitploit

secs-man

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

secs-man можно использовать для управления секретами локальных и удалённых машин, и он идеально подходит для создания только локальных резервных копий данных, которые слишком чувствительны для резервного копирования где-то в облаке.

Философия

Теория

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

Любое программное обеспечение, которое заставляет вас оставаться в его экосистеме после использования (например: «если вы зашифруете этим программным обеспечением, вы сможете расшифровать только этим же программным обеспечением»), делает вас зависимым от него.

Следовательно, шифрование, расшифровка и восстановление ваших важных данных должны быть развязаны: если вы зашифровали их программным обеспечением X, вы всё ещё должны иметь возможность расшифровать их без программного обеспечения X.

На практике

На практике невозможно создать схему, в которой ваши секреты на 100% защищены от потери данных. Даже если ваше программное обеспечение X совместимо с Y, Z и W, вы всё равно потеряете доступ к данным, если X, Y, Z и W одновременно перестанут работать.

Что вы делаете на практике — это убеждаетесь, что зависите только от технологий, которые являются «стандартами» или близки к ним. Я готов мириться с зависимостью от существования bash-интерпретаторов, USB-портов и Linux-машин.

Истинная цель secs-man тогда сводится к тому, чтобы быть полностью воспроизводимым только с помощью:

  • терминала
  • coreutils, таких как cp, mv и sha256sum
  • age
  • ручной работы и небольшого количества времени

Зависимость от age — самая деликатная, но зависимость от какой-либо криптографической библиотеки неизбежна, а у age и большая популярность, и отличные биндинги для Rust.

Это гарантирует, что даже если с этим программным обеспечением что-то случится, что помешает вам использовать его снова, при условии, что age всё ещё существует и вы готовы потратить 30 минут своей жизни, вы всё равно сможете восстановить все свои секреты.

Раздел ручное восстановление объясняет, как импортировать секреты, экспортированные этим программным обеспечением, не используя это программное обеспечение, то есть только с помощью coreutils, age и терминала.

Установка

secs-man нигде не опубликован (это не опубликованный крейт, его нет в nixpkgs, AUR или аналогичных репозиториях). Его можно установить только напрямую из этого репозитория одним из следующих способов.

С помощью nix run

Если вам нужно запускать secs-man лишь изредка, вы можете запускать его напрямую без установки (требуется включённый flakes)

nix run github:Fran314/secrets-manager-rs -- export /path/to/secrets /path/to/export/endpoint

Через вашу конфигурацию Nix

Чтобы сделать secs-man доступным системно, вы можете импортировать этот репозиторий в свою конфигурацию Nix с помощью fetchGit и добавить полученный пакет в environment.systemPackages (или в home.packages с помощью home-manager)

let
  secs-man = pkgs.callPackage "${builtins.fetchGit {
    url = "https://github.com/Fran314/secrets-manager-rs.git";
    ref = "main";
    # rev = "<commit>"; # закрепите конкретный коммит для воспроизводимости
  }}/default.nix" { };
in
# добавьте `secs-man` в environment.systemPackages или home.packages

С помощью cargo

Если вы не на NixOS, вы можете установить бинарник secs-man, указав cargo на этот репозиторий

cargo install --git https://github.com/Fran314/secrets-manager-rs

обратите внимание, что ни один из этих способов не устанавливает скрипт secs-man-ssh, необходимый для удалённых машин: это отдельный скрипт, который нужно скопировать из этого репозитория отдельно

Использование

Этот инструмент позволяет экспортировать и шифровать файлы из заданного исходного каталога, а также восстанавливать их путём импорта в тот же каталог. Рекомендуемый способ использования этого инструмента — хранить все ваши «секреты» (ключи, файлы и т. д.) в централизованном каталоге.

В корне каталога секретов должен находиться файл .secrets-manifest в открытом виде, содержащий список секретов, которыми нужно управлять, в виде путей относительно каталога секретов. Пути к файлам не могут содержать пробелы. Каждая запись также может указывать owner и mode, которые будут использоваться для установки правильных прав доступа при импорте. Синтаксис см. в .secrets-manifest.example.

Во время экспорта файлы, перечисленные в манифесте, шифруются с помощью age парольной фразой, запрашиваемой через интерактивный запрос (secs-man никогда не читает её из файла, аргумента или переменной окружения). Та же парольная фраза запрашивается снова при импорте для расшифровки файлов. Целостность файлов гарантируется сопутствующим файлом *.sha256, который автоматически создаётся, если отсутствует. Зашифрованные файлы экспортируются в снапшот с временной меткой внутри целевого каталога экспорта.

Затем файлы можно расшифровать и импортировать, указав либо целевой каталог экспорта (для импорта последнего снапшота), либо конкретный снапшот внутри этого каталога.

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

Чтобы экспортировать ваши секреты, выполните

sudo secs-man export /path/to/secrets /path/to/export/endpoint

Чтобы проверить целостность существующего экспорта (см. примечание ниже), выполните

# to verify the integrity of all the exported snapshots
sudo secs-man verify-export /path/to/export/endpoint

# to verify the integrity of a specific snapshot
sudo secs-man verify-export /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ

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

Чтобы импортировать ваши секреты, выполните

# to import the latest snapshot
sudo secs-man import /path/to/export/endpoint /path/to/secrets

# to import a specific snapshot
sudo secs-man import /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ /path/to/secrets

# to import only specific secrets
sudo secs-man import /path/to/export/endpoint /path/to/secrets --pick ssh/id_ed25519 wg/wg0.key

Использование с удалёнными машинами

Этот инструмент также можно использовать для развёртывания и резервного копирования секретов на удалённых машинах.

Самый простой способ экспортировать удалённые секреты — экспортировать их во временный каталог на удалённом хосте, а затем скопировать экспортированный снапшот в локальную резервную копию. Аналогично, для импорта локальной резервной копии проще всего скопировать локальный снапшот во временный каталог на удалённом хосте, а затем импортировать их оттуда. Однако здесь есть проблема: парольная фраза шифрования/расшифровки должна проходить через удалённый хост, который может считаться недоверенным.

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