微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

弃用的普通用户和密码

如何解决弃用的普通用户和密码

我有几个项目在几个 git 客户端中使用普通用户名和密码。

问题是 GitHub 不再支持用户名/密码验证。

我可以更改什么或让它们工作的最佳选择是什么?

解决方法

TL;DR

PAT (personal access token) 可以像密码一样用于以您的用户身份向 GitHub 进行身份验证。您可以将其用于 GitHub API,也可以用于使用 git 进行交互。

SSH 允许您使用 ssh 协议从/向 git 存储库克隆/推送/拉取。

Deploy keys 与 SSH 类似,但用于单个存储库。

OAuth2 可用于应用程序请求您访问 GitHub 的权限。

为什么不推荐使用?

你不应该直接使用你的普通密码,因为

  • 您需要以明文形式保存密码或对其进行加密,但将加密密钥放在加密密码旁边,这样加密就无用了。
    任何可以访问您计算机的人(如果您感染了病毒或有人窃取了您的硬盘驱动器或类似情况),他们都可以读取您的 GitHub 密码。
  • 您无法区分不同的应用程序,并且需要为每个应用程序使用相同的密码。这些应用程序中的任何一个都可能窃取您的 GitHub 密码。
  • 如果您向应用程序提供您的用户名和密码,您就无法限制权限,因为他们可以访问您的整个帐户。

你还有什么选择?

帕特

从用户名/密码身份验证迁移到 GitHub 上的其他内容的最简单方法是 PAT (personal access token)

您可以通过点击 Settings>Developer SettingsGenerate new token 下生成个人访问令牌。然后,您可以选择定义允许使用令牌的范围。

建议为每个应用程序创建一个具有最少权限的独特令牌,以便在它被盗时可以轻松撤销它。

您可以只使用令牌而不是密码来与 GitHub 交互。

SSH

您也可以使用 SSH to read/write from/to a repository

首先,您需要generate an SSH key才能使用它。

之后,您可以通过点击 SSH and GPG keys 将其添加到帐户设置的 New SSH key 部分。

此过程说明here

在这里,您粘贴 SSH 密钥。

设置后,您可以使用它通过 SSH 访问存储库,而不会提示输入用户名/密码。

部署密钥

如果应用程序应该与特定存储库交互,那么 deploy key 可能是一个更好的主意。

部署密钥是仅对单个存储库有效的 SSH 密钥。

为了使用部署密钥,您首先需要create those

您可以在 /settings/keys (https://github.com/<username>/<reponame>/settings/keys) 下为每个存储库配置部署密钥。然后您可以点击 Add deploy key,为密钥选择一个名称并粘贴该密钥。

设置部署密钥后,应用程序可以从存储库中读取(如果您以这种方式配置,则可以写入存储库)。

OAuth2

另一种与 GitHub 通信的方式是 using OAuth2

应用程序会将您(或打开浏览器)重定向到 GitHub。您登录到 GitHub 并授权应用程序访问它需要访问的任何内容。然后 GitHub 会将您重定向到该应用程序,它可以访问您允许其访问的任何内容。

许多 GitHub 应用程序已经支持 OAuth2,所以没问题。

为了在您自己的应用程序中使用 OAuth2,您首先需要 create an OAuth2 application。您可以在 Settings>Developer Settings 中点击 Register a new application

然后程序可以ask to authorize it访问该帐户。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。