如何解决弃用的普通用户和密码
我可以更改什么或让它们工作的最佳选择是什么?
解决方法
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 Settings
在 Generate 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 举报,一经查实,本站将立刻删除。