GitHub CLI:可选择启用可过期、自动刷新的 OAuth 令牌
GitHub CLI 推出公开预览:登录时可选择启用可过期、自动刷新的 OAuth 凭证,泄露的访问令牌在数小时内失效;同时官方明确表示,未来会把该行为设为新登录的默认。
原贴
查看原文原文
中文翻译
你现在可以在 GitHub CLI 中使用可过期、自动刷新的 OAuth 凭证,作为公开预览的一部分。当你选择启用后,gh 会存储一个可过期的访问令牌和一个轮换的刷新令牌,并在需要时自动刷新令牌。你无需重新认证即可保持已认证状态,而泄露的访问令牌会在数小时内失效,而不是无限期有效。
从 v2.103.0 开始,在使用 gh auth login --expiring 登录时传入新的 --expiring 标志。若要在每次登录时都选择启用、而不必每次传入该标志,运行 gh config set expiring_credentials enabled。此后,日常无需再运行任何新命令:gh 会在后台为你刷新凭证。要检查可过期凭证的状态,包括当前访问令牌何时过期,运行 gh auth status。
如果你通过 HTTPS 向 git 进行认证,并且希望使用可过期令牌,我们强烈建议运行 gh auth setup-git,将 gh 配置为你的 git 凭证助手。这会让 gh 为 git 提供并刷新凭证,从而使你的可过期令牌得到正确处理。我们还强烈建议升级到 git 2.46 或更新版本,这能让 gh 标记可过期凭证,使其不会在超出生命周期后被缓存。在更旧的 git 版本上,gh 仍可工作,但会打印一次性升级建议。
它是选择启用的,并且向后兼容。如果你不通过标志或配置设置选择启用,什么都不会改变。现有的登录和手动提供的令牌完全照旧工作。你会得到服务器签发的任何内容。--expiring 请求可刷新的凭证。如果服务器不支持它们,gh 会干净地回退到普通的非过期令牌。它会随时间推移成为默认。
可过期凭证目前是选择启用的。在未来的版本中,我们计划让它们成为新登录的默认。可过期访问令牌是短寿命的,因此任何一次性捕获令牌并在之后复用的做法都可能失效。运行 gh auth token 并存储结果、或把令牌复制到另一工具的脚本和扩展,最终会持有一个已过期的令牌。如果你在 gh 之外使用该令牌,请每次都用 gh auth token 重新读取,这会按需刷新它,而不是缓存该值。如果某个工作流依赖长期保持有效的令牌,请暂缓为该工作流选择启用。
当 gh 被配置为你的 git 凭证助手时,它会为你刷新凭证,因此通过 HTTPS 的 git 操作会继续正常工作。可过期令牌今天在 github.com 和 ghe.com 上可用。GitHub Enterprise Server 从 GHES 3.23 开始签发它们。在更早的版本上,选择启用会回退到今天的非过期行为。关于使用 GitHub CLI 进行认证(包括可过期令牌)的更多信息,见《使用 GitHub CLI 认证》。今天就安装或升级到 GitHub CLI v2.103.0 开始使用。
核心信息
GitHub CLI 推出公开预览:登录时可选择启用可过期、自动刷新的 OAuth 凭证,泄露的访问令牌在数小时内失效;同时官方明确表示,未来会把该行为设为新登录的默认。
- GitHub CLI 推出公开预览:登录时可选择启用可过期、自动刷新的 OAuth 凭证,泄露的访问令牌在数小时内失效;同时官方明确表示,未来会把该行为设为新登录的默认。
- 原贴提到:You can now use expiring, automatically refreshing OAuth credentials in
- 来源:github.blog
详细解读
这是什么信号:GitHub CLI 把“短期访问令牌 + 轮换刷新令牌”这套原本偏企业级的凭证模型,下放成了命令行默认体验的一个可选开关。更关键的信号在于:公告写明这会在未来版本中变成新登录的默认。也就是说,这不是一个加了就完事的小功能,而是 GitHub 正在迁移 OAuth 凭证的默认形态。
为什么重要:长期有效的访问令牌是开发者工具链里泄露面最大的资产之一:一旦被日志、截图、CI 变量、第三方工具带走,它就能无限期使用。可过期令牌把“一次泄露 = 永久访问”改成“一次泄露 = 数小时窗口”,而刷新令牌轮换进一步压缩了复用空间。安全收益不来自你多做了什么,而来自你少暴露了什么。
对谁有价值:一是写脚本和 gh 扩展的人,尤其是那些会缓存 gh auth token 结果的;二是用 gh 做 git over HTTPS 认证的团队;三是需要向审计解释“令牌为什么不能永久有效”的平台和安全工程;四是 CI/CD 维护者,因为默认切换的时间点会直接影响他们。
可以怎么行动:先把 GitHub CLI 升到 v2.103.0。个人可以单次使用 gh auth login --expiring,或一次性设置 gh config set expiring_credentials enabled,开启后日常不需要额外操作。用 HTTPS 访问 git 的,运行 gh auth setup-git,让 gh 兼任凭证助手并负责刷新;同时把 git 升到 2.46 或更新,避免凭证在生命周期结束后仍被缓存。最重要的一步是审计:把所有“取一次 token 存起来反复用”的脚本改成每次现取 gh auth token。核对状态用 gh auth status。
风险与限制:这是选择启用的,并且向后兼容;不启用则什么都不变,服务器不支持时也会干净回退到非过期令牌,所以现在并不需要急着全量切换。真正的坑在依赖长期有效令牌的工作流上,官方直接建议这类工作流暂缓。旧版本 git 能运行,但会打印一次性升级提示;GHES 需要 3.23 起才签发可过期令牌,更早版本会回退。还有一点容易被忽略:把令牌复制到其他工具里使用的路径,最终会拿到一个已过期的令牌,而且这个问题不会在切换当天暴露,而是在令牌到期时才暴露。
信息差价值
这条内容的真正价值,不只是“有人发布了一个新功能”,而是它揭示了 github.blog 背后的产品方向、工作流变化或竞争信号。对 OPC 来说,这种信息可以转化成持续追踪的栏目选题。
如果把《GitHub CLI:可选择启用可过期、自动刷新的 OAuth 令牌》放到你的内容系统里,它最大的价值在于帮助读者更快看懂“为什么值得关注”,而不是只看到一条碎片化动态。
参考来源
TOPIC HUBS
延伸专题
AI SUMMARY
这篇文章回答了什么
GitHub CLI:可选择启用可过期、自动刷新的 OAuth 令牌主要讲什么?
GitHub CLI 推出公开预览:登录时可选择启用可过期、自动刷新的 OAuth 凭证,泄露的访问令牌在数小时内失效;同时官方明确表示,未来会把该行为设为新登录的默认。
这篇文章最值得关注的要点是什么?
GitHub CLI 推出公开预览:登录时可选择启用可过期、自动刷新的 OAuth 凭证,泄露的访问令牌在数小时内失效;同时官方明确表示,未来会把该行为设为新登录的默认。;原贴提到:You can now use expiring, automatically refreshing OAuth credentials in;来源:github.blog
这篇文章和哪些AI专题相关?
它适合放在AI日报、AI工具、Agent工作流专题里阅读。 关联原因:这篇内容命中「热点解读」等主题信号。;这篇内容命中「工具」等主题信号。;这篇内容来自该专题长期覆盖的栏目。
阅读这篇文章建议先理解哪些关键词?
建议先理解AI日报、每日AI日报、AI信号、热点解读、BuilderPulse这些关键词,再结合正文判断工具、机会或风险是否值得进入自己的工作流。