Skip to main content

为存储库配置机密扫描

可以配置 GitHub 如何扫描存储库中遭到泄露的机密并生成警报。

谁可以使用此功能?

People with admin permissions to a public repository can enable secret scanning for the repository.

Secret scanning alerts for partners runs automatically on public repositories and public npm packages to notify service providers about leaked secrets on GitHub.

Secret scanning alerts for users are available for public repositories for free. Organizations using GitHub Enterprise Cloud with a license for GitHub Advanced Security can also enable secret scanning alerts for users on their private and internal repositories. For more information, see "About secret scanning" and "About GitHub Advanced Security."

For information about how you can try GitHub Enterprise with GitHub Advanced Security for free, see "Setting up a trial of GitHub Enterprise Cloud" and "Setting up a trial of GitHub Advanced Security" in the GitHub Enterprise Cloud documentation.

启用 用户的机密扫描警报

可以为任何你拥有的免费公共存储库启用用户的机密扫描警报。 启用后,secret scanning 将在 GitHub 仓库中存在的所有分支上扫描整个 Git 历史记录的任何密钥。 此外,secret scanning 会扫描:

  • 问题中的描述和评论
  • 打开和结束的_历史_问题中的标题、描述和评论
  • 拉取请求中的标题、描述和评论
  • GitHub Discussions中的标题、描述和注释
  • Wiki

此项额外扫描对公共存储库是免费的。

注意: 拉取请求和 GitHub Discussions 中的内容的扫描和 wiki 目前处于 Beta 版,可能会有变动。

还可以同时为组织中的多个存储库启用 secret scanning。 有关详细信息,请参阅“保护组织快速入门”。

存储库管理员可以选择随时为存储库禁用secret scanning。 有关详细信息,请参阅“管理存储库的安全和分析设置”。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 向下滚动到页面底部,为 secret scanning 单击“启用”。 如果你看到“禁用”按钮,则表示已为存储库启用 secret scanning。

    “代码安全和分析”页的“Secret scanning”部分的屏幕截图,其中“启用”按钮以深橙色边框突出显示。

启用 用户的机密扫描警报 的额外功能

可以通过存储库的“代码安全和分析”设置启用以下附加 secret scanning 功能:

为所有公共存储库启用用户的机密扫描警报

可以通过个人帐户设置为所有现有的公共存储库启用secret scanning。

注意****:从 2024 年 3 月 11 日起,你新创建的所有公共存储库将会默认启用secret scanning和推送保护。 仍然可以在存储库的“代码安全和分析”设置页面中选择为单个存储库禁用这些功能。 有关详细信息,请参阅“管理存储库的安全和分析设置”。

  1. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  3. 在“代码安全和分析”下的“Secret scanning”右侧,单击“全部禁用”或“全部启用”。

  4. (可选)如果要启用推送保护,请单击“推送保护”右侧的“启用”。 为组织或存储库启用推送保护时,secret scanning 还会检查推送是否支持受支持的机密。 Secret scanning 列出了它检测到的所有机密,便于作者进行查看和删除,或者根据允许推送这些机密。 有关详细信息,请参阅“存储库和组织的推送保护”。

    “Secret scanning”部分的屏幕截图。 在“推送保护”部分中,“启用”按钮以深橙色边框突出显示。

从 用户的机密扫描警报 中排除目录

可以将 secret_scanning.yml 文件配置为从 secret scanning 中排除目录,包括使用推送保护时。 例如,可以排除包含测试或随机生成内容的目录。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在文件列表上方,选择“添加文件” 下拉菜单,然后单击“ 创建新文件” 。

    也可在左侧的文件树状视图中单击

    存储库主页的屏幕截图。 在文件列表上方,标有“添加文件”的按钮以深橙色框出。 在存储库的文件树状视图中,带加号图标的按钮也以深橙色框出。

  3. 在文件名字段中,键入 .github/secret_scanning.yml。

  4. 在“编辑新文件”下,键入 paths-ignore:,后跟要从 secret scanning 中排除的路径。

    paths-ignore:
      - "foo/bar/*.js"
    

    可以使用特殊字符(例如 *)来筛选路径。 有关筛选器模式的详细信息,请参阅“GitHub Actions 的工作流语法”。

    注意:

    • 如果 paths-ignore 中的条目超过 1,000 个,secret scanning 只会从扫描中排除前 1,000 个目录。
    • 如果 secret_scanning.yml 大于 1 MB,secret scanning 将忽略整个文件。

您也可以忽略来自 secret scanning 的个别警报。 有关详细信息,请参阅“管理来自机密扫描的警报”。