Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-03-26. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

新增 SSH 密钥到 GitHub 帐户

若要在 你的 GitHub Enterprise Server 实例 上配置帐户以使用新的(或现有)SSH 密钥,还需要将密钥添加到帐户。

Platform navigation

Tool navigation

关于向帐户添加 SSH 密钥

可以使用 SSH(安全外壳协议)在 你的 GitHub Enterprise Server 实例 上的存储库中访问和写入数据。 通过 SSH 进行连接时,使用本地计算机上的私钥文件进行身份验证。有关详细信息,请参阅“关于 SSH”。

还可以使用 SSH 对提交和标记进行签名。 有关提交签名的详细信息,请参阅“关于提交签名验证”。

生成 SSH 密钥对后,必须将公钥添加到 你的 GitHub Enterprise Server 实例,才能为帐户启用 SSH 访问。

先决条件

在向 你的 GitHub Enterprise Server 实例 上的帐户添加新的 SSH 密钥之前,请完成以下步骤。

  1. 检查现有 SSH 密钥。 有关详细信息,请参阅“检查现有 SSH 密钥”。
  2. 生成新的 SSH 密钥,并将其添加到计算机的 SSH 代理。 有关详细信息,请参阅“生成新的 SSH 密钥并将其添加到 ssh-agent”。

向你的帐户添加新的 SSH 密钥

可以添加 SSH 密钥并将其用于身份验证或提交签名,或同时用于这两个目的。 如果要使用相同的 SSH 密钥进行身份验证和签名,则需要将其上传两次。

向 你的 GitHub Enterprise Server 实例 上的帐户添加新 SSH 身份验证密钥后,可以重新配置任何本地存储库以使用 SSH。 有关详细信息,请参阅“管理远程仓库”。

注意:默认情况下,若使用 GitHub Enterprise Server 3.6 及更高版本,则截至 2022 年 8 月 1 日午夜 (UTC),同时满足以下两个条件的 SSH 连接将失败 。


  • RSA 密钥在 2022 年 8 月 1 日午夜 UTC 截止日期之后添加到 你的 GitHub Enterprise Server 实例 上的用户帐户。
  • SSH 客户端使用 SHA-1 哈希函数对连接尝试进行签名。

GitHub Enterprise Server 3.6 及更高版本也不支持使用 DSA、HMAC-SHA-1 或 CBC 密码的 SSH 连接。 只要密钥保持有效,在截止日期之前上传的 RSA SSH 密钥便可以继续使用 SHA-1 哈希函数进行身份验证。 有关查找所使用的 GitHub Enterprise Server 版本的详细信息,请参阅“关于 GitHub 文档的版本”。

站点管理员可以使用 RSA-SHA-1 调整连接的截止日期,也可以使用 RSA-SHA-1 阻止所有连接。 有关详细信息,请联系站点管理员或参阅“配置与实例的 SSH 连接”。

  1. 将 SSH 公钥复制到剪贴板。

    如果您的 SSH 公钥文件与示例代码不同,请修改文件名以匹配您当前的设置。 在复制密钥时,请勿添加任何新行或空格。

    $ pbcopy < ~/.ssh/id_ed25519.pub
    # Copies the contents of the id_ed25519.pub file to your clipboard
    

    提示:如果 pbcopy 不起作用,你可以找到隐藏的 .ssh 文件夹,在你最喜欢的文本编辑器中打开该文件,并将其复制到剪贴板。

$ clip < ~/.ssh/id_ed25519.pub
# Copies the contents of the id_ed25519.pub file to your clipboard

注意:

  • 对于适用于 Linux 的 Windows 子系统 (WSL),可以使用 clip.exe。 如果 clip 不起作用,你可以找到隐藏的 .ssh 文件夹,在你最喜欢的文本编辑器中打开该文件,并将其复制到剪贴板。
  • 在使用 Windows 终端的较新版本 Windows 中,或者在使用 PowerShell 命令行的任何其他位置,可能会收到一条 ParseError,表示 The '&lt;' operator is reserved for future use.。在这种情况下,应使用以下替代 clip 命令:
$ cat ~/.ssh/id_ed25519.pub | clip
# Copies the contents of the id_ed25519.pub file to your clipboard
$ cat ~/.ssh/id_ed25519.pub
# Then select and copy the contents of the id_ed25519.pub file
# displayed in the terminal to your clipboard

提示:或者,你也可以找到隐藏的 .ssh 文件夹,在你最喜欢的文本编辑器中打开该文件,并将其复制到剪贴板。

  1. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. 在边栏的“访问”部分中,单击 “SSH 和 GPG 密钥”。

  3. 单击“新建 SSH 密钥”或“添加 SSH 密钥” 。

  4. 在 "Title"(标题)字段中,为新密钥添加描述性标签。 例如,如果使用的是个人笔记本电脑,则可以将此密钥称为“个人笔记本电脑”。

  5. 选择密钥类型(身份验证或签名)。 有关提交签名的详细信息,请参阅“关于提交签名验证”。

  6. 在“密钥”字段中,粘贴公钥。

  7. 单击“添加 SSH 密钥”。

  8. 如果出现提示,请确认你的帐户是否拥有 GitHub Enterprise Server 访问权限。 有关详细信息,请参阅“Sudo 模式”。

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

在使用 GitHub CLI 将 SSH 密钥添加到帐户之前,必须向 GitHub CLI 进行身份验证。 有关详细信息,请参阅 GitHub CLI 文档中的“gh auth login”。

要将 SSH 密钥添加到 GitHub 帐户,请使用 ssh-key add 子命令,指定公钥。 对于身份验证密钥,如果系统提示请求其他作用域,请按照命令行中的说明操作。

gh ssh-key add KEY-FILE --type {authentication|signing}

若要包含新密钥的标题,请使用 -t--title 标记。

gh ssh-key add KEY-FILE --title "personal laptop"

如果按照“生成新的 SSH 密钥并将其添加到 ssh-agent”中的说明生成 SSH 密钥,则可以使用此命令将密钥添加到帐户。

gh ssh-key add ~/.ssh/id_ed25519.pub --type signing