为确保帐户安全,必须先进行身份验证,然后才能访问 上的某些资源。 向 进行身份验证时,你提供或确认你唯一的凭据,以证明你就是声明者。
你可以通过多种方式访问 中的资源:在浏览器中、通过 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 | 可用身份验证方法 | 详细信息 |
---|---|---|
SAML | Personal access token | 禁用密码验证 |
LDAP | Personal 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_ | 刷新用户访问令牌 |