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

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

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

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

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

Категории

Все категории
Loading categories
jit — Найдите секреты в открытом виде на вашем Mac и переместите их под защиту Touch ID, подставляя их ровно в тот момент, когда они нужны, не ломая инструменты, которые их читают. Бесплатно и полностью локально. | Kitploit
Инструменты/GitHubGitHub/jitpass/jit
Аутентификация и авторизацияИнструменты шифрования/дешифрованияАудит конфигурацииDevSecOpsОбнаружение СекретовБезопасность Цепочки Поставок
GitHubjitpass/jit

jit

Найдите секреты в открытом виде на вашем Mac и переместите их под защиту Touch ID, подставляя их ровно в тот момент, когда они нужны, не ломая инструменты, которые их читают. Бесплатно и полностью локально.

Репозиторий
146 дней назадЕщё не проверено

Популярное

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

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

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

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

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

jitpass - пароли "точно в срок"

Just-in-time учётные данные для вашей машины разработчика.

Документация · Быстрый старт · Поддерживаемые инструменты · Справочник команд · Безопасность

Статус: только macOS (Apple Silicon), ещё в разработке.

Что такое jit (за 30 секунд)

Ваши секреты лежат открытым текстом по всей машине: файлы .env, ~/.aws/credentials, экспорты в ~/.zshrc, токены .npmrc, конфиги MCP. Всё, что запускается от вашего имени, может их прочитать. Плохой curl | sh, подозрительный npm install или один из AI-агентов, работающих сейчас в вашем редакторе с вашими полными правами.

jit перемещает каждый секрет в локальное зашифрованное хранилище, доступ к которому открывается по Touch ID, и переписывает файлы так, чтобы ваши инструменты продолжали работать. На диске теперь лежит приманка. Настоящее значение появляется только в памяти, для конкретного процесса, который его запросил, после биометрического запроса. Итог: вы разблокируете один раз, jit спрашивает перед тем, как передать учётные данные инструменту (или агенту), а на диске всё остальное время лежит приманка.

запущено из Codeзапущено из claude
imageimage

Установка

root@kitploit:~
brew install jitpass/tap/jitpass

Или без Homebrew:

root@kitploit:~
curl -sL https://dl.jitpass.com/jitpass/jit/releases/latest/download/jitpass_darwin_arm64.tar.gz | tar -xz jit
sudo mv jit /usr/local/bin/

Только Apple Silicon — на Intel Mac собирайте из исходников с помощью go install github.com/jitpass/jit/cmd/jit@latest.

Выберите один путь. Если вы раньше ставили из тарбола и переходите на Homebrew, удалите старую копию после brew install (sudo rm /usr/local/bin/jit); иначе два jit окажутся в PATH и будут обновляться отдельно, и jit doctor это отметит.

Релизы подписаны Developer ID и нотаризованы Apple, поэтому оба пути работают без запроса Gatekeeper: Homebrew помещает загрузки в карантин, а Gatekeeper проверяет их по нотаризационному билету, тогда как curl (и go install) вообще не устанавливают флаг карантина. Чтобы проверить, что вы получили, а не верить нам на слово, выполните jit doctor — его строка jit сообщает signed CZC6BH93GJ, используя ту же проверку, которую jit upgrade выполняет перед установкой чего-либо.

Обновление: brew upgrade jitpass или jit upgrade — проверенное самообновление (подпись Developer-ID и контрольная сумма проверяются до замены, сервис перезапускается). В любом случае ваше хранилище не затрагивается.

Homebrew устанавливает автодополнение для шелла вместе с бинарником, так что jit <TAB> дополняет подкоманды, флаги, пути к хранилищу и имена оборачиваемых инструментов из коробки. Если установлено из тарбола или из исходников, добавьте самостоятельно:

root@kitploit:~
echo 'source <(jit completion zsh)' >> ~/.zshrc && exec zsh

В любом случае jit doctor сообщит, если автодополнение не доходит до вашего шелла.

Как вы реально этим пользуетесь

root@kitploit:~
jit scan                            # только чтение. не меняет ни одного файла, не печатает реальных значений.
jit vault init                      # создать хранилище (мастер-ключ в вашей связке ключей)
jit migrate --dry-run               # предпросмотр всего плана исправлений для машины
jit migrate                         # применить: показывает план, спрашивает [y/N], один Touch ID
jit migrate ~/code/myapp            # или исправить только один проект
jit run -- npm run dev              # запустить инструмент; реальные значения внедряются только в этот процесс

jit scan без пути сканирует весь ваш домашний каталог, так что на большом каталоге дайте ему время. Чтобы сразу перейти к одному месту, укажите путь: jit scan ~/.aws.

В повседневной жизни это в основном jit run -- <cmd>. Для CLI, которые хранят собственный токен входа (gh, glab, stripe и другие), вы один раз выполняете jit wrap gh, а потом продолжаете писать gh как обычно.

Не уверены, нужно ли чему-то jit wrap, jit migrate или ничего? Вам не нужно знать. jit scan разделяет всё найденное на то, что jit защитит (одна команда — включая обёртки), и то, что можете исправить только вы, а jit migrate без аргументов выполняет весь этот план:

root@kitploit:~
$ jit scan
  YOUR SECRETS: 7 — 0 protected by jit (0%)
  ▱▱▱▱▱▱▱▱▱▱  to 100%: one command +71% · 2 secrets only you can fix +29%

  jit will protect these — 5 secrets in 4 files, 0% → 71%
      → jit migrate
        ~/.zshrc            STRIPE_API_KEY, DB_PASSWORD
        ~/.config/gh/hosts.yml  GitHub CLI token · wraps gh
        ...

  only you can protect these — 2 secrets, 71% → 100%

    [rotate, then delete every copy]
    ! A production database password in 2 files
      → rotate it now, then delete every copy

(jit scan --full по-прежнему даёт классическую инвентаризацию по категориям с уровнями серьёзности, включая раздел Wrappable CLI Tokens.)

Ваши повседневные инструменты

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

root@kitploit:~
# AWS (а также Terraform и все AWS SDK)
jit migrate ~/.aws/credentials       # ключи переезжают в хранилище; открытого файла не остаётся
aws s3 ls                            # подтягивается из хранилища по требованию. без префиксов и флагов.
terraform apply                      # те же учётные данные, та же команда

# GCP application-default credentials (машинные учётные данные)
jit migrate ~/.config/gcloud/application_default_credentials.json
terraform apply                      # google provider читает ADC; работает после запроса Touch ID

# Docker / docker-compose
jit migrate ~/.docker/config.json    # логины реестров переезжают в хранилище
jit run -- docker compose up         # jit внедряет их для этого запуска
docker login ghcr.io                 # продолжает работать; хелпер сохраняет в хранилище

# Экспорты шелла, которые раньше лежали в ~/.zshrc
jit migrate ~/.zshrc                 # оставляет однострочный хук; в новых шеллах переменные уже есть
./deploy.sh                          # скрипты, читающие эти переменные, работают без изменений

# Токены, которые вы когда-то вводили в промпте, а теперь они в истории шелла
jit migrate ~/.zsh_history           # каждый переезжает в хранилище; команды остаются, секретов нет
jit guard history                    # и перестать вообще записывать следующие (zsh)
                                     # (голый `jit migrate` тоже предлагает это в плане, который просит подтвердить)

# CLI, который хранит собственный токен (gh, stripe, glab)
jit wrap gh                          # один раз
gh pr list                           # токен внедряется при каждом вызове, навсегда

При первом обращении инструмента к реальным учётным данным jit спрашивает один раз и запоминает ответ до блокировки хранилища. См. Два момента Touch ID, а не один о том, как это сочетается с разблокировкой хранилища, что делает --trust и как отключить запросы для отдельных инструментов.

Почему одним инструментам не нужна настройка, а другим нужен jit run? Одно правило: может ли инструмент сам попросить jit о секрете? AWS (через credential_process), ваш шелл при входе и логины реестров docker (через credential helper) — могут, поэтому ничего лишнего вводить не нужно. Инструменты, которые только читают файл во время выполнения (docker compose, обычные SDK), не могут спросить, поэтому jit run передаёт им значение.

Общемашинные файлы учётных данных (GCP ADC, sops, npm, netrc) работают так же в повседневной жизни: запускайте свой инструмент и подтверждайте запрос для процесса. Добавляйте jit run --with <name>, только когда хотите явности: для скриптов и CI, где некому ответить на запрос, или когда нужен жёсткий шлюз, до которого собственному конфигу проекта не дотянуться. Поддерживаемые инструменты перечисляет, что именно вводить для каждого инструмента и как именно это доставляется.

Два момента Touch ID, а не один

jit запрашивает отпечаток в два разных момента, выполняя две разные задачи:

  1. Разблокировка хранилища. При первом использовании jit после блокировки один Touch ID открывает хранилище на всю сессию (5 минут активности, затем снова блокировка; и никогда не дольше 8 часов, как бы активно вы ни работали). Вы разблокируете один раз, а не для каждой команды.
  2. Передача учётных данных инструменту. Дополнительно, при первом обращении конкретного инструмента к реальным учётным данным, jit спрашивает перед передачей и называет, кто запрашивает. Именно это не позволяет программе, которую вы не запускали, тихо использовать ваши ключи, пока хранилище открыто.
root@kitploit:~
$ aws s3 ls
  Touch ID  ->  unlock your vault              # шлюз 1: открывает хранилище на 5 мин
  Touch ID  ->  aws wants your aws credential   # шлюз 2: этот инструмент, эти учётные данные
  ...your buckets...

$ aws s3 cp ./file s3://bucket/   # тот же инструмент, та же сессия: запроса нет

$ terraform apply
  Touch ID  ->  terraform wants your aws credential   # другой инструмент: спрашивает сам

Шлюз 2 не даёт открытому хранилищу превратиться в проходной двор: даже после того, как вы сами использовали aws, подозрительный npm install, тянущийся к тем же ключам, всё равно вызовет запрос с указанием имени, и вы сможете отказать.

Не нужен второй шлюз? Выключите его; блокировка хранилища остаётся (для выключения сам по себе потребуется Touch ID, так как это снова открывает окно, которое он закрывает):

root@kitploit:~
jit service consent off   # инструменты обращаются молча, пока хранилище разблокировано
jit service consent on    # снова спрашивать для каждого инструмента (по умолчанию)

Запускаете что-то, для чего нужно сразу несколько учётных данных? jit run --trust -- terraform apply одобряет инструменты всего запуска одним жестом. Подробности: согласие для процессов.

Уходите от клавиатуры? Одобрите работу заранее

Оба шлюза предполагают, что рядом есть человек, готовый ответить. AI-агент, работающий всю ночь, долгая сборка, задание по расписанию: экран блокируется, сессия падает, и запуск зависает на запросе, которого никто не увидит. Процессный грант переносит ваше решение на более ранний момент, а не убирает его — один Touch ID, который вы даёте, пока ещё на месте и который точно называет, что вы подписываете:

root@kitploit:~
$ jit grant --process claude --profile jamf --for 8h
  Touch ID  ->  let claude under iTerm2 use 2 secrets (jamf) unattended for 8h
✓ granted g-7f3a2c81   claude -> jamf   until 17:42
  └ covers claude under iTerm2: 1 running now, any started before 17:42

В ближайшие 8 часов каждый claude из того терминала, где вы это ввели (и всё, что он запускает), получает эти секреты без запросов — включая заблокированный экран, а также сессии, которые вы откроете позже: новая вкладка, следующий claude, скрипт, срабатывающий в 3 часа ночи. Называется именно ваш терминал, а не доверяется имя: программа, называющая себя claude где-то ещё на машине, не происходит из этого дерева процессов и ничего не наследует. Грант заканчивается по сроку, при закрытии этого терминала или в момент, когда вы введёте jit grant revoke (отзыв не требует отпечатка — лишить доступа всегда бесплатно). Нужен один конкретный процесс, исчезающий при выходе? --pid. Каждая выдача попадает в журнал аудита отдельным событием, так что утром вы сможете прочитать, к чему именно прикасался ваш агент, пока вы спали. Подробности: процессные гранты.

Журнал аудита: что произошло и кто это сделал

Каждая команда jit и каждая разблокировка попадают в постоянный журнал, который читается через jit audit — от новых к старым, по одной строке key=value на событие, так что он грепается как настоящий сервисный лог. Аргументы команд маскируются, поэтому лог доказывает, что команда выполнялась, не сохраняя при этом секрет, который она несла.

root@kitploit:~
$ jit audit --since 1h
time=2026-07-24 10:15:04 level=info kind=cmd status=ok dur=312ms cmd="jit migrate ~/.aws/credentials" user=meni parent=claude
time=2026-07-24 10:16:22 level=info kind=use op="read a secret" cmd="aws s3 ls" parent=claude secrets=aws/default
time=2026-07-24 10:31:09 level=warn kind=unlock status=denied method=touchid-or-passcode cmd="node postinstall.js" parent=npm secrets=aws/default

Средняя строка — та история, ради которой существует jit: aws/default прочитал aws s3 ls, запущенный из claude. Последняя — отклонённый вами запрос: node postinstall.js из-под npm тянется к тем же ключам — отказ. jit также логирует то, что сервис отверг на своём сокете (процесс, который, по словам ядра, вам не принадлежит, и пробивает доступ к агенту), как kind=error.

Сужайте выборку флагами, а не grep: --kind, --status ok|failed|denied, --since/--until (возраст вроде 2h/3d или дата), --parent claude, --secret aws, --user, --grep <regexp>. Добавьте --follow (-f) для потокового просмотра новых событий в реальном времени, как tail -f, или --format json для машинно-разбираемого дампа. Обе половины — постоянные файлы рядом с хранилищем, поэтому они отвечают за прошлую неделю так же легко, как за последний час.

Что поддерживается

Файлы .env, экспорты шелла, AWS и Terraform, kubeconfig, логины реестров Docker, GCP ADC, токены .npmrc / .netrc, конфиги MCP-серверов, отдельные файлы с токенами, учётные данные, записанные в истории шелла, оборачиваемые CLI (gh, stripe, vercel, …) и SSO-CLI, которые выпускают учётные данные при входе (clisso). В любом случае файл продолжает работать, а реальное значение приходит из хранилища по требованию.

Полный каталог, сгруппированный по тому, что именно вводить для каждого инструмента, — в Поддерживаемые инструменты: он отслеживает код по мере добавления и удаления инструментов. Всё, что не перечислено, всё равно можно обернуть с помощью jit wrap add.

Можно ли откатить? Всегда.

jit никогда не уничтожает учётные данные. Миграция переносит значение в хранилище и оставляет рабочий хук на прежнем месте (приманка .env, строка eval "$(jit export)" в конфиге шелла, credential_process = jit … в ~/.aws/config или шим в PATH), так что ваши инструменты продолжают получать его по требованию. Учётные данные существуют, просто зашифрованы вместо открытого текста.

И каждое изменение обратимо. Перед тем как тронуть файл, jit сохраняет его резервную копию в зашифрованном виде в хранилище, так что jit migrate undo возвращает файл байт-в-байт:

root@kitploit:~
jit migrate ~/code/myapp        # применили исправление, один Touch ID
# передумали или что-то сломалось?
jit migrate undo ~/code/myapp   # каждый затронутый файл восстановлен байт-в-байт

Подробнее

Документация лежит в docs/, организована по задачам:

  • Быстрый старт: установка, миграция, жизнь с исправлением, шаг за шагом
  • Как это работает: хранилище, сервис, монтирования и шимы на одной странице
  • FAQ: вопросы разработчиков и по безопасности, с прямыми ответами
  • Согласие для процессов: что делают запросы для инструментов и как их настроить или отключить
  • Процессные гранты: заранее одобрить работающий инструмент для автономной работы в ограниченном, отзываемом, аудируемом окне
  • Журнал аудита: прочитать все команды, разблокировки и отказы, с фильтрацией и follow-режимом
  • Справочник команд: все команды и флаги, сгенерировано из CLI
  • Архитектура безопасности: модель угроз и честные ограничения
  • CONTRIBUTING.md: настройка сборки/тестов; заверение через DCO (git commit -s), без CLA

Лицензия

PolyForm Perimeter License 1.0.0 — бесплатна только для личного и внутреннего использования в компании.

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