@github:只需一条命令,即可阻止将密钥泄露到你的公开代码中。为你的仓库提供必要的安全卫生防护……
摘要
GitHub Security Lab 开源了 gh-secure 工具,一条命令即可为公开仓库开启分支保护、密钥扫描、Dependabot、代码扫描等五项安全防护,并支持在 Copilot 应用与 Copilot CLI 中使用。
查看缓存全文
缓存时间: 2026/10/01 20:28
一条命令,即可阻止你把密钥泄露到公开代码中。使用 GitHub Security Lab 提供的 gh-secure,为你的仓库建立必要的安全防护。✅ 可在 Copilot 应用、Copilot CLI 或 GitHub CLI 中安装使用。
— # GitHubSecurityLab/gh-secure 来源:https://github.com/GitHubSecurityLab/gh-secure
gh-secure
2 分钟内守护你的项目
这是一个用于为公开仓库启用安全功能的 GitHub CLI(https://cli.github.com)扩展,遵循 GitHub Security Lab(https://securitylab.github.com/)的最佳实践。
这里介绍的一切对开源项目都是免费的
- 防止恶意行为者利用你项目中的漏洞
- 通过阻止密钥泄露到互联网,保护你的私有资产
- 防止恶意行为者利用依赖项中已被公开披露的漏洞
- 防止对你的项目的未授权访问和篡改
- 通过将安全漏洞在修复前保持私密,防范 0day 和漏洞利用
无需安全或编程技能
只需拥有一个你具备管理员权限的 GitHub 开源项目。
我该如何使用它?
运行该工具后,你可以在 2 分钟或更短时间内为仓库启用安全功能。你可以直接在终端中使用它,支持交互模式或“直接执行“模式。
gh-secure CLI 演示
你也可以在 GitHub Copilot CLI 或 GitHub Copilot 应用中使用它,或者通过任何能够访问该工具的 AI 助手使用。可以让它概述你仓库的安全状况、询问某项具体功能的详情,并让它为你开启缺失的功能。
gh-secure Copilot 应用演示
安装
gh extension install GitHubSecurityLab/gh-secure
前置条件
- 已安装并完成认证的 GitHub CLI(https://cli.github.com)(
gh) - 在目标仓库上拥有管理员或维护者权限
用法
gh secure # 交互模式,启用全部功能
gh secure --yes # 启用全部功能,无需确认提示
gh secure branch-protection dependabot # 仅启用这两个功能
gh secure bp ss cs -y # 启用 3 个功能,无需确认提示
gh secure --repo owner/repo code-scanning # 在指定仓库上启用 CodeQL
gh secure --yes --dry-run # 预览将要启用的内容
gh secure status # 查看当前功能状态
gh secure status --repo owner/repo # 查看指定仓库的状态
标志(Flags)
| 标志 | 说明 |
|---|---|
-r, --repo | 目标仓库(默认:当前仓库) |
-y, --yes | 启用所选功能,无需确认提示 |
-n, --dry-run | 仅模拟变更,不实际应用 |
-v, --version | 输出版本号 |
-h, --help | 显示帮助信息 |
功能名称
传入一个或多个功能名称,可仅启用特定功能。如果不指定任何名称,则默认启用全部功能。
| 功能 | 缩写 |
|---|---|
branch-protection | bp |
vulnerability-reporting | vr |
secret-scanning | ss |
dependabot | dep |
code-scanning | cs |
安全功能
该工具会根据 GitHub Security Lab 的建议(https://securitylab.github.com/protect-your-project.html)启用以下五项安全功能:
1. 分支保护
分支保护可以阻止对项目的意外变更,防止可能引入漏洞或破坏项目稳定性的意外或恶意提交。分支规则让你能够灵活控制谁可以强制推送、删除分支等。如果你的仓库已有生效的规则集(https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets),gh secure 会在启用旧版分支保护前发出警告,以避免规则重叠或冲突。
文档(https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches)
2. 私有漏洞报告
安全策略和私有漏洞报告(PVR)为漏洞在公开之前提供了一条安全的报告途径。让项目外部人员(如用户和安全研究人员)能够轻松地私下报告安全缺陷。 文档(https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability)
3. 密钥扫描
API 密钥、令牌和密码等敏感数据可能被意外提交到你的仓库中。配合推送保护(push protection)的密钥扫描,可防护来自 180 多家服务商的 300 多种令牌类型和模式。 文档(https://docs.github.com/code-security/secret-scanning/about-secret-scanning)
4. Dependabot
Dependabot 让你轻松保障依赖项的安全。它会自动检查你的依赖项是否存在已知漏洞,并创建拉取请求将其更新到安全版本。这省去了手动检查的麻烦,并拦截了威胁。 文档(https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
5. 代码扫描(CodeQL)
GitHub 代码扫描会自动检测你的项目和拉取请求中的常见安全漏洞。在漏洞被利用于你和你的用户之前,你可以手动修复,或借助 Copilot Autofix 的 AI 建议来解决。 文档(https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning)
故障排查
“403 Forbidden” 错误
请确认你在该仓库上拥有管理员或维护者权限。对于组织仓库,你可能还需要 admin:org 权限范围 —— 运行 gh auth refresh -s admin:org。
代码扫描失败
请确认仓库包含受支持的语言(https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/),并且你的套餐支持代码扫描功能。
分支保护失败
某些组织的策略会限制分支保护的启用。请联系你的组织管理员。如果你的仓库使用了规则集(https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets),你可能完全不需要旧版分支保护 —— gh secure 会检测到生效的规则集,并在启用前向你确认。
资源
- 本周每位 GitHub 维护者都应启用的 6 项安全设置(https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/)
- GitHub Security Lab(https://securitylab.github.com/)
- GitHub 安全文档(https://docs.github.com/en/code-security)
- CodeQL 文档(https://codeql.github.com/docs/)
常见问题
我需要什么权限,为什么需要?
你需要在目标仓库上拥有 admin 或 maintain 权限。这是因为启用安全功能(分支保护规则、代码扫描、密钥扫描、Dependabot 和漏洞报告)需要对仓库设置的写入权限。对于组织仓库,你可能还需要 admin:org OAuth 权限范围 —— 运行 gh auth refresh -s admin:org 即可添加。
我该如何进行认证?
gh-secure 使用 GitHub CLI(https://cli.github.com)的认证机制。运行 gh auth status 可检查当前会话状态。如果尚未认证,请运行 gh auth login 并按提示操作。该工具会沿用你的 gh 会话所持有的令牌和权限范围。
这些变更会对我的项目产生什么影响?
启用这些功能会增加防护护栏,但不会修改你的源代码:
- 分支保护 可能要求贡献者通过拉取请求提交变更,而不是直接推送到默认分支。
- 密钥扫描 会拦截包含检测到的密钥的推送(推送保护),并对仓库历史中已存在的任何密钥发出警报。
- Dependabot 会创建拉取请求以更新存在漏洞的依赖项 —— 是否合并仍由你决定。
- 代码扫描 会在每次推送和拉取请求时运行;结果会以警报形式呈现,除非你单独配置,否则不会阻止合并。
- 私有漏洞报告 为外部报告者提供了一个渠道,但不会暴露任何私有信息。
所有这些设置都可以随时从你的仓库设置中还原,不会对项目造成任何影响。
我的项目会因此变得安全吗?
这些功能能显著提升项目的安全基线,但没有任何工具能保证绝对安全。它们帮助你检测和防范常见问题 —— 泄露的密钥、存在已知漏洞的依赖项、代码层面的漏洞以及未授权变更 —— 但安全是一项持续进行的工作。请定期审查警报、保持依赖项为最新版本,并参考 GitHub 安全文档(https://docs.github.com/en/code-security)获取更多最佳实践。
许可证
本项目采用 MIT 开源许可证授权。完整条款请参阅 LICENSE 文件。
维护者
请参阅 CODEOWNERS,或联系 GitHub Security Lab 团队。
支持
有关如何获取本项目帮助的详细信息,请参阅 SUPPORT.md。
相似文章
@github: 使用一条命令在公共仓库中启用所有这些免费安全设置。获取 gh CLI 扩展 gh secure ht…
本文介绍了 'gh secure',这是一个 GitHub CLI 扩展,可以通过一条命令在公共仓库中启用免费安全设置,遵循 GitHub Security Lab 的最佳实践。
@seclink: 分享
本文分享了一个GitHub仓库,精选了安全漏洞样本集和基准,用于评估静态分析工具和大模型在漏洞挖掘与安全代码生成中的能力,涵盖多种语言和最新科研成果。
@Huahuazo: GitHub上最近有个叫CodeFlow的工具,它的用法很简单——只要粘贴一个仓库地址,就能把整个项目的代码依赖关系以可视化的方式呈现出来。把它的几个核心能力拆开来看: 点击任意文件,能立刻看到修改它会对哪些其他部分造成影响 对整个代码库…
CodeFlow is a browser-based tool that visualizes code dependencies from a GitHub URL or local folder, providing interactive graphs, security scanning, pattern detection, and health scores without uploading code.
@FakeMaidenMaker: the-book-of-secret-knowledge:工程师的秘籍合集 每次想找一个顺手的命令行工具或技巧,都得重新 Google 一堆,找到了又记不住,下次还得再找。 最近发现一个超好用的资源库,把日常折腾命令行会用到的 CLI 工…
介绍 GitHub 上的 the-book-of-secret-knowledge 仓库,收集了大量 CLI 工具、cheatsheet、运维技巧和安全资源,适合工程师日常查阅。
@10xmylife: 这个工具好
KIGI CLI 0.1.5版本更新,新增支持5个OAuth提供商和24个基于API的提供商,包括Kimi Coding、ChatGPT、Grok xAI、Claude、GitHub Copilot。这是一个完全开源的支持图工程的CLI工具。