哪个更适合 GitHub 身份验证:SSH 密钥还是令牌?

Cal*_*son 6 github ssh-keys

我最近开始收到有关 GitHub 弃用使用 Git 密码的基本身份验证的通知 - 请参阅他们的博客文章https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

在这篇文章中,他们说:

对于开发人员,如果您今天使用密码对 GitHub.com 的 Git 操作进行身份验证,则必须在 2021 年 8 月 13 日之前通过 HTTPS(推荐)或 SSH 密钥开始使用个人访问令牌,以避免中断。

不久前,我开始在我使用的一些机器上使用 SSH 密钥,以避免定期输入我的密码或使用凭证助手未加密地存储它。但是,如上所述,他们说“推荐”个人访问令牌。

我希望这在很大程度上取决于个人偏好或用例,但是令牌或 SSH 密钥在某些方面更好,为什么 GitHub 专门推荐令牌?

Adi*_*l B 7

你链接的博客文章,我可以看到代币中的至少一个惠及十几SSH密钥:当令牌两者共享SSH密钥独特的可撤销,并随机好处在下面的博客文章引述,令牌也限制相比,SSH键,因为它们带有自己的范围权限

GitHub 个人访问令牌范围屏幕截图

虽然 SSH 密钥可以是只读或可读写的,也可以限制在特定的存储库中,但相比之下,个人访问令牌在其更细粒度的权限模型方面确实具有优势。这可能是 GitHub 推荐令牌而不是 SSH 密钥的原因。

与基于密码的身份验证相比,令牌提供了许多安全优势:

  • 唯一 – 令牌特定于 GitHub,可以按使用或按设备生成
  • 可撤销 - 可以随时单独撤销令牌,而无需更新未受影响的凭据
  • 有限 – 令牌可以缩小范围以仅允许用例所需的访问
  • 随机 – 令牌不受您需要记住或定期输入的更简单密码可能会受到的字典类型或蛮力尝试的影响