Skip to main content

为存储库配置机密扫描

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

谁可以使用此功能?

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

合作伙伴的机密扫描警报 在 GitHub.com 上的公共存储库和公共 npm 包中自动运行,以向服务提供商通知泄漏的机密情况。

用户的机密扫描警报 在所有公共存储库上免费提供。 使用 GitHub Enterprise Cloud 且拥有 GitHub Advanced Security 许可证的组织也可以在其专用存储库和内部存储库上启用 用户的机密扫描警报。 有关详细信息,请参阅 “关于机密扫描”和“关于 GitHub 高级安全性”。

有关如何使用 GitHub Advanced Security 免费试用 GitHub Enterprise 的信息,请参阅 GitHub Enterprise Cloud 文档中的“设置 GitHub Enterprise Cloud 试用版”和“安装 GitHub Advanced Security 试用版”。

启用 用户的机密扫描警报

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

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

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

中的标题、描述和评论

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

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

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

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

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

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

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

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

  5. (可选)如果要启用推送保护,请单击“推送保护”右侧的“启用”。 为你的组织或存储库启用推送保护时,secret scanning 还会检查推送中是否存在高置信度机密(经识别误报率低的机密)。 Secret scanning 列出了它检测到的所有机密,便于作者进行查看和删除,或者根据需要允许推送这些机密。 有关详细信息,请参阅“存储库和组织的推送保护”。

    “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”右侧,单击“全部禁用”或“全部启用”。

    个人帐户设置页上“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 的个别警报。 有关详细信息,请参阅“管理来自机密扫描的警报”。