Skip to main content

关于向 验证

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

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

  • 你的标识提供者 (IdP)
  • 使用双因素身份验证的用户名和密码或密钥
  • Personal access token
  • SSH 密钥

你可以在浏览器中以多种方式向 进行身份验证。

如果需要在 你的 Enterprise Server 实例 上使用多个帐户(例如个人帐户和服务帐户),你可以在帐户之间快速切换,而不需要每次都重新验证。 有关详细信息,请参阅“在帐户之间切换”。

  • 仅用户名和密码

    • 在 上创建帐户时,你将创建一个密码。 我们建议您使用密码管理器生成随机且唯一的密码。 有关详细信息,请参阅“创建强密码
  • 双因素身份验证 (2FA) (推荐)

    • 如果你启用 2FA,则在成功输入用户名和密码后,我们还将提示你提供基于时间的一次性密码 (TOTP) 应用程序在移动设备 的其余部分。 有关详细信息,请参阅“使用双重身份验证访问 ”。

    • 除了使用 TOTP 应用程序进行身份验证外,你还可以选择使用 WebAuthn 添加采用安全密钥的备用身份验证方法。 请参阅使用安全密钥配置双因素身份验证

  • 密钥

    • 你可以向帐户添加密钥,以启用安全的无密码登录。 密钥同时满足密码和 2FA 要求,因此只需一个步骤即可完成登录。 请参阅“关于密钥”。
  • 外部身份验证

    • 站点管理员可以将 你的 Enterprise Server 实例 配置为使用外部身份验证,而不是使用用户名和密码。 有关详细信息,请参阅“关于身份和访问管理”。

使用 cookie 来提供服务并提高安全性。

  • gist.HOSTNAME 域 和 实例的基本域 使用单独的 Cookie。
  • 通常会在两周处于非活动状态后将用户会话标记为删除。
  • 在你注销时不会立即删除会话。 定期自动删除过期的会话。

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

您可以通过不同方式使用 API 进行身份验证。 有关详细信息,请参阅“对 REST API 进行身份验证”。

如果要将 REST API 用于个人用途,可以创建 personal access token。 如果可能, 建议使用 fine-grained personal access token 而不是 personal access token (classic)。 有关创建 personal access token 的详细信息,请参阅“管理个人访问令牌”。

如果要代表组织或其他用户使用 API, 建议使用 App。 有关详细信息,请参阅“关于使用 应用进行身份验证”。

你还可以使用 OAuth app 创建 OAuth 标记以访问 REST API。 但 建议改用 App。 使用 Apps 可以更好地控制应用拥有的访问权限和权限。

如果要在 Actions 工作流中使用 API,则 建议使用内置 _TOKEN 进行身份验证,而不是创建令牌。 可以使用 permissions 密钥向 _TOKEN 授予权限。

请注意,_TOKEN 只能访问包含工作流的存储库中的资源。 如果需要对工作流存储库外部的资源进行更改,则需要使用 personal access token 或 App。

有关详细信息,请参阅“自动令牌身份验证”。

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

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

如果使用 CLI 进行身份验证,可以使用 personal access token 或通过 Web 浏览器进行身份验证。 有关使用 CLI 进行身份验证的详细信息,请参阅 gh auth login

如果不使用 CLI 进行身份验证,可使用身份验证方法,其可用性取决于你的 IdP。

该表概述了基于为实例配置的 IdP 的可用身份验证方法。 不同的 IdP 可能会施加特定限制或启用某些功能,例如禁用密码验证。 有关详细信息,请参阅“标识和访问管理”。

IdP可用身份验证方法详细信息
SAMLPersonal access token禁用密码验证
LDAPPersonal access token 或用户名/密码站点管理员可以禁用密码验证
内置身份验证Personal access token 或用户名/密码无法禁用密码验证

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

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

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

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

令牌类型前缀详细信息
Personal access token (classic)ghp_管理个人访问令牌
Fine-grained personal access token_pat_管理个人访问令牌
OAuth 访问令牌gho_授权 OAuth 应用
App 的用户访问令牌ghu_代表用户使用 应用进行身份验证
App 的安装访问令牌ghs_验证为 应用程序安装
App 的刷新令牌ghr_刷新用户访问令牌