我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 已停止服务 2021-02-11. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

生成新 SSH 密钥并添加到 ssh-agent

检查现有 SSH 密钥后,您可以生成新 SSH 密钥以用于身份验证,然后将其添加到 ssh-agent。

本文内容

如果您还没有 SSH 密钥,则必须生成新 SSH 密钥。 如果您不确定是否已有 SSH 密钥,请检查现有密钥

如果不想在每次使用 SSH 密钥时重新输入密码,您可以将密钥添加到 SSH 代理,让它管理您的 SSH 密钥并记住您的密码。

生成新 SSH 密钥

  1. 打开 Terminal(终端)Terminal(终端)Git Bash

  2. 粘贴下面的文本(替换为您的 GitHub Enterprise Server 电子邮件地址)。

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    注:如果您使用的是不支持 Ed25519 算法的旧系统,请使用以下命令:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    这将创建以所提供的电子邮件地址为标签的新 SSH 密钥。
    > Generating public/private ed25519 key pair.
  3. 提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 键。 这将接受默认文件位置。

    > Enter a file in which to save the key (/Users/you/.ssh/id_ed25519): [Press enter]
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519):[Press enter]
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]
  4. 在提示时输入安全密码。 更多信息请参阅“使用 SSH 密钥密码”

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

将 SSH 密钥添加到 ssh-agent

将新 SSH 密钥添加到 ssh-agent 以管理密钥之前,应检查现有 SSH 密钥生成新 SSH 密钥将 SSH 密钥添加到该代理时,应使用默认的 macOS ssh-add 命令,而不是使用通过 macports, homebrew 或某些其他外部来源安装的应用程序。

  1. 在后台启动 ssh 代理。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. 如果您使用的是 macOS Sierra 10.12.2 或更高版本,则需要修改 ~/.ssh/config 文件以自动将密钥加载到 ssh-agent 中并在密钥链中存储密码。

    • 首先,检查您的 ~/.ssh/config 文件是否在默认位置。

      $ open ~/.ssh/config
      > The file /Users/you/.ssh/config does not exist.
    • 如果文件不存在,请创建该文件。

      $ touch ~/.ssh/config
    • 打开 ~/.ssh/config 文件,然后修改该文件,如果未使用 id_ed25519 键的默认位置和名称,则替换 ~/.ssh/id_ed25519

      Host *
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      注意: 如果您选择不向密钥添加密码,应该省略 UseKeychain 行。

  3. 将 SSH 私钥添加到 ssh-agent 并将密码存储在密钥链中。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_ed25519 替换为您的私钥文件的名称。

    $ ssh-add -K ~/.ssh/id_ed25519

    注:-K 选项位于 Apple 的 ssh-add 标准版本中,当您将 ssh 密钥添加到 ssh-agent 时,它会将密码存储在您的密钥链中。 如果选择不向密钥添加密码,请运行命令,而不使用 -K 选项。

    如果您没有安装 Apple 的标准版本,可能会收到错误消息。 有关解决此错误的详细信息,请参阅“错误:ssh-add:非法选项 -- K”。

  4. 将 SSH 密钥添加到 GitHub 帐户

如果已安装 GitHub Desktop,可使用它克隆仓库,而无需处理 SSH 密钥。

  1. 确保 ssh-agent 正在运行。 您可以根据“使用 SSH 密钥密码”中的“自动启动 ssh-agent”说明,或者手动启动它:

    # start the ssh-agent in the background
    $ eval `ssh-agent -s`
    > Agent pid 59566
  2. 将 SSH 私钥添加到 ssh-agent。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_ed25519 替换为您的私钥文件的名称。

    $ ssh-add ~/.ssh/id_ed25519
  3. 将 SSH 密钥添加到 GitHub 帐户

  1. 在后台启动 ssh 代理。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. 将 SSH 私钥添加到 ssh-agent。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_ed25519 替换为您的私钥文件的名称。

    $ ssh-add ~/.ssh/id_ed25519
  3. 将 SSH 密钥添加到 GitHub 帐户

延伸阅读