Skip to main content

关于向 GitHub 验证

您可以根据身份验证位置使用不同的凭据,向 GitHub 验证来安全地访问帐户的资源。

关于 GitHub 向验证身份

为确保帐户安全,必须先进行身份验证,然后才能访问 GitHub 上的某些资源。 向 GitHub 验证时,您提供或确认您唯一的凭据,以证明您就是声明者。

您可以通过多种方式访问 GitHub 中的资源:浏览器中、通过 GitHub Desktop 或其他桌面应用程序、使用 API 或通过命令行。 每种访问 GitHub 的方式都支持不同的身份验证模式。

  • 用于双因素身份验证的用户名和密码
  • 个人访问令牌
  • SSH 密钥

在浏览器中进行身份验证

如果您是 enterprise with managed users 的成员,您将使用 IdP 在浏览器中向 GitHub 验证。 有关详细信息,请参阅 GitHub Enterprise Cloud 文档中的“作为托管用户进行身份验证”。

如果你不是 enterprise with managed users 的成员,你将使用 GitHub.com 用户名和密码进行身份验证。 还可以使用双因素身份验证和 SAML 单一登录,组织和企业所有者可能需要这一点。

  • 仅用户名和密码

    • 在 GitHub 上创建帐户时,你将创建一个密码。 我们建议您使用密码管理器生成随机且唯一的密码。 有关详细信息,请参阅“创建强密码”。

    • 如果未启用 2FA,GitHub 将在首次从无法识别的设备(例如新浏览器配置文件、已删除 Cookie 的浏览器或新计算机)登录时请求其他验证。

      提供用户名和密码后,系统将要求你提供一个验证码,我们会通过电子邮件发送给你。 如果已安装 GitHub Mobile 应用程序,则将改为收到通知。 有关详细信息,请参阅“GitHub Mobile”。

  • 双因素身份验证 (2FA) (推荐)

  • SAML 单一登录

    • 在可以访问使用 SAML 单一登录的组织或企业帐户拥有的资源之前,可能还需要通过 IdP 进行身份验证。 有关详细信息,请参阅 GitHub Enterprise Cloud 文档中的“关于使用 SAML 单一登录进行身份验证”。

向 GitHub Desktop 验证身份

您可以使用浏览器向 GitHub Desktop 验证身份。 有关详细信息,请参阅“向 GitHub 进行身份验证”。

使用 API 验证身份

您可以通过不同方式使用 API 进行身份验证。

  • 个人访问令牌
    • 在有限的情况(如测试)下可以使用个人访问令牌访问 API。 使用个人访问令牌可让您随时撤销访问。 有关详细信息,请参阅“创建个人访问令牌”。
  • Web 应用程序流程
    • 对于生产中的 OAuth 应用程序,应使用 Web 应用程序流程进行身份验证。 有关详细信息,请参阅“授权 OAuth 应用”。
  • GitHub 应用

使用命令行进行身份验证

您可以通过两种方式从命令行访问 GitHub 上的仓库:HTTPS 和 SSH ,两者采用不同的身份验证。 验证方法取决于克隆仓库时您是选择 HTTPS 还是 SSH 远程 URL。 有关访问方式的详细信息,请参阅“关于远程存储库”。

HTTPS

即使您在防火墙或代理后面,也可以通过 HTTPS 处理 GitHub 上的所有仓库。

如果您使用 GitHub CLI 进行身份验证,您可以使用个人访问令牌或通过 Web 浏览器进行身份验证。 有关使用 GitHub CLI 进行身份验证的详细信息,请参阅 gh auth login

如果您不使用 GitHub CLI 进行身份验证,则必须使用个人访问令牌进行身份验证。 当 Git 提示输入密码时,请输入个人访问令牌 (PAT)。 或者,可以使用 Git 凭据管理器等凭据帮助程序。 Git 的基于密码的身份验证已被删除,以支持更安全的身份验证方法。 有关详细信息,请参阅“创建个人访问令牌”。除非你使用凭据小助手缓存了凭据,否则每次使用 Git 向 GitHub 验证时,系统都会提示你输入凭据以向 GitHub 验证。

SSH

您可以通过 SSH 处理 GitHub 上的所有仓库,尽管防火墙和代理可能拒绝允许 SSH 连接。

如果您使用 GitHub CLI 进行身份验证,CLI 会在您的机器上找到 SSH 公共密钥,并提示您选择一个用于上传。 如果 GitHub CLI 找不到用于上传的 SSH 公钥,则可以生成新的 SSH 公钥/私钥对,并将公钥上传到您在 GitHub.com 上的帐户。 然后,您可以使用个人访问令牌进行身份验证,也可以通过 Web 浏览器进行身份验证。 有关使用 GitHub CLI 进行身份验证的详细信息,请参阅 gh auth login

如果您在没有 GitHub CLI 的情况下进行身份验证,则需要在本地计算机上生成 SSH 公钥/私钥对,并将公钥添加到您在 GitHub.com 上的帐户。 有关详细信息,请参阅“生成新的 SSH 密钥并将其添加到 ssh-agent”。 除非你已存储密钥,否则每次使用 Git 向 GitHub 进行身份验证时,系统都会提示你输入 SSH 密钥密码。

SAML 单点登录授权

若要使用个人访问令牌或 SSH 密钥访问由使用 SAML 单一登录的组织所拥有的资源,还必须授权个人令牌或 SSH 密钥。 有关详细信息,请参阅 GitHub Enterprise Cloud 文档中的“授权个人访问令牌以用于 SAML 单一登录”或“授权 SSH 密钥以用于 SAML 单一登录”。

GitHub 的令牌格式

以前缀开头的 GitHub 议题令牌表示令牌的类型。

令牌类型前缀详细信息
个人访问令牌ghp_创建个人访问令牌
OAuth 访问令牌gho_授权 OAuth Apps
GitHub App 的用户到服务器令牌ghu_针对 GitHub Apps 识别和授权用户
GitHub App 的服务器到服务器令牌ghs_使用 GitHub Apps 进行身份验证
GitHub App 的刷新令牌ghr_刷新用户到服务器访问令牌