gitleaks

扫描 Git 历史,秒级揪出泄露的密钥和令牌

Gitleaks 是一个用 Go 编写的开源密钥扫描工具,专门用于检测 Git 仓库中的敏感信息泄露,如密码、API 密钥、令牌等。它解决的是开发者在代码提交过程中无意将机密信息推送到远程仓库的安全问题。核心能力包括:支持扫描本地和远程 Git 仓库、可自定义正则规则匹配不同类型的密钥、支持与 GitHub/GitLab 等平台集成、提供 JSON/CSV 等多种输出格式、支持历史提交和分支扫描。Gitleaks 通过预提交钩子或 CI/CD 管道集成,能在代码合并前拦截敏感信息,防止数据泄露事故。它拥有活跃的社区和丰富的规则库,是 DevSecOps 流程中常用的安全工具。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 29429
维护状态 较活跃
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队gitleaks
所属国家
定价模式free
价格说明完全开源免费,MIT 许可证,可自行部署使用,无付费版本。
访问状态
是否开源是
开源协议MIT
主要语言Go
技术栈/模型ai-powered,ci-cd,cicd,cli,data-loss-prevention,devsecops,dlp,git,gitleaks,go,golang,hacktoberfest,llm,llm-inference,llm-training,nhi,open-source,secret,security,security-tools
GitHub 星标★ 29429
30天Star增速
HF 下载量
上线时间2018-01-27 00:00:00
最近更新2026-09-22 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:Docker 7 步

环境要求

  • 已安装 Docker(使用 Docker 镜像方式运行)
  • 如需源码编译,需本机已安装 Go 和 make
  • 需要一个待扫描的文件夹或 Git 仓库路径
  • 可选:自定义规则配置文件(.gitleaks.toml 或自建 toml)

安装与启动步骤

  1. 1拉取 Docker 镜像

    从 DockerHub 拉取官方镜像,也可改用 ghcr.io 地址,两者命令等价。

    docker pull zricethezav/gitleaks:latest
  2. 2验证命令可用

    运行 version 命令确认镜像可正常启动,并看到版本号输出。

    docker run --rm zricethezav/gitleaks:latest version
  3. 3扫描目录或文件

    用 dir 命令扫描目录或文件,注意把宿主机路径换成你的真实待扫描目录。

    docker run -v /your/repo:/path zricethezav/gitleaks:latest dir /path
  4. 4扫描 Git 仓库

    用 git 命令扫描仓库历史提交与分支中的敏感信息,适合排查旧提交泄露。

    docker run -v /your/repo:/path zricethezav/gitleaks:latest git /path
  5. 5指定自定义配置

    配置文件按固定优先级加载,也可用 -c 或环境变量传入自建规则文件。

    export GITLEAKS_CONFIG="/home/dev/customgitleaks.toml"
    docker run -v /your/repo:/path -e GITLEAKS_CONFIG ghcr.io/gitleaks/gitleaks:latest git /path
  6. 6输出扫描报告

    用 -f 指定 json/csv/junit/sarif 格式,-r 指定报告文件路径。

    docker run -v /your/repo:/path zricethezav/gitleaks:latest git -f json -r /path/report.json /path
  7. 7源码编译安装

    需要本机已装 Go,克隆仓库后执行 make build 编译出二进制。

    git clone https://github.com/gitleaks/gitleaks.git
    cd gitleaks
    make build

关键配置

配置项必填说明示例
--config / -c否指定配置文件路径,优先级最高/home/dev/customgitleaks.toml
GITLEAKS_CONFIG否环境变量方式指定配置文件路径/home/dev/customgitleaks.toml
GITLEAKS_CONFIG_TOML否环境变量方式直接传入配置文件的完整内容cat customgitleaks.toml
.gitleaks.toml否放在目标扫描路径下的默认配置文件.gitleaks.toml
-f, --report-format否报告输出格式,支持 json、csv、junit、sarif、templatejson
-r, --report-path否报告文件写入路径report.json

如何确认成功

执行 version 命令能打印版本号即安装成功;扫描完成后查看终端输出或 -r 指定的报告文件是否生成。

常见问题

Q:自定义配置文件为什么没生效?

A:加载优先级为:--config/-c > 环境变量 GITLEAKS_CONFIG > 环境变量 GITLEAKS_CONFIG_TOML > 目标路径下的 .gitleaks.toml;四个都没用则走默认配置,请检查是否被更高优先级覆盖。

Q:扫描到密钥后命令为什么返回非 0?

A:默认发现泄露时退出码为 1,可用 --exit-code 修改,CI 流程中需要据此判断是否阻断。

Q:日志里会明文打印密钥吗?

A:默认 --redact 为 100% 即全部打码,也可传 0~100 的百分比只对部分内容打码。

Q:怎么扫描历史提交而不只是当前文件?

A:使用 git 子命令扫描 Git 仓库,它会覆盖历史提交;dir 子命令只扫描目录或文件的当前内容。

Q:必须用 Docker 吗?

A:不是,README 说明还可用 Homebrew、Go 安装,或在 releases 页面下载各平台二进制包。

注意事项

  • README 顶部声明项目已 feature complete,后续版本只做安全补丁,新功能转向 Betterleaks 项目
  • docker run 中的挂载路径需替换为你本机的真实目录,容器内统一映射为 /path
  • 除 DockerHub 外也可使用 ghcr.io/gitleaks/gitleaks:latest 镜像地址
  • 配置扩展可链式引用多个配置文件,深度最多为 2 层

核心亮点

  • 支持扫描完整 Git 历史,包括已删除的提交,防止历史泄露
  • 内置大量常见密钥格式规则,并支持自定义正则,灵活适配
  • 可集成到 GitHub Actions、Pre-commit 等 CI/CD 流程,自动化拦截

不足之处

  • 正则匹配可能产生误报,需要人工审核结果
  • 文档/社区待观察

适用场景

  • 开发者在提交代码前用 pre-commit 钩子扫描,防止密钥入库
  • 安全团队定期扫描全量 Git 仓库历史,排查历史泄露
  • CI/CD 流水线中集成,合并请求时自动检测敏感信息

替代项目

TruffleHog、git-secrets、detect-secrets

项目介绍

gitleaks 是开源模型领域的开源项目,由 gitleaks 开发,2018 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(29,429)位列前 2%,在开源模型分类的 422 个项目里位列前 1%。

近 41 天,它的 GitHub 星标从 28,654 增加到 29,429,净增 775。

项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-22。完全开源免费,MIT 许可证,可自行部署使用,无付费版本。

它主要面向的使用场景是:开发者在提交代码前用pre-commit钩子扫描,防止密钥入库。同类可对比的替代方案包括 TruffleHog、git-secrets、detect-secrets。

上一篇:Bootstrap3D

下一篇:Awesome-Chinese-LLM

同类项目推荐

Machine-Learning 开源

跟着博客笔记,边看边跑机器学习代码

All content related to machine learning from my blog

★ 115 2026-08-09
CoreML-Models 开源

下载即用的苹果端 AI 模型库,免去转换烦恼

Core ML model zoo for iOS/macOS — PyTorch models converted to ready-to-use .mlpacka···

★ 1873 2026-08-10