Using the SSH protocol, you can connect and authenticate to remote servers and services. With SSH keys, you can connect to GitHub without supplying your username and personal access token at each visit.

检查现有的 SSH 密钥

在生成 SSH 密钥之前,您可以检查是否有任何现有的 SSH 密钥。

  1. 打开 Git Bash。

  2. 输入ls -al ~/.ssh以查看是否存在现有的 SSH 密钥。

    1
    2
    $ ls -al ~/.ssh
    # Lists the files in your .ssh directory, if they exist
  3. 检查目录列表以查看您是否已经拥有公共 SSH 密钥。默认情况下,GitHub 支持的公钥的文件名是以下之一

    1
    2
    3
    id_rsa.pub
    id_ecdsa.pub
    id_ed25519.pub
  4. 生成新的 SSH 密钥或上传现有密钥。

    • 如果您没有受支持的公钥和私钥对,或者不想使用任何可用的密钥对,请生成新的 SSH 密钥
    • 如果您看到列出的现有公钥和私钥对(例如,id_rsa.pub和id_rsa)您想用来连接到 GitHub,您可以将密钥添加到 ssh-agent。

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

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

关于 SSH 密钥生成

如果您还没有 SSH 密钥,则必须生成新的 SSH 密钥以用于身份验证。如果您不确定是否已有 SSH 密钥,可以检查现有密钥。,

如果您想使用硬件安全密钥向 GitHub 进行身份验证,则必须为您的硬件安全密钥生成一个新的 SSH 密钥。当您使用密钥对进行身份验证时,您必须将硬件安全密钥连接到您的计算机。有关详细信息,请参阅OpenSSH 8.2 发行说明,

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

生成新的 SSH 密钥

  1. 打开 Git Bash。

  2. 粘贴下面的文本,替换为您的 GitHub 电子邮件地址

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

    这将使用提供的电子邮件作为标签创建一个新的 SSH 密钥。

    1
    Generating public/private algorithm key pair.
  3. 当系统提示您“输入要在其中保存密钥的文件”时,按 Enter。这接受默认文件位置。

    1
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_algorithm):[Press enter]
  4. 在提示符处,键入安全密码。有关更多信息,请参阅 使用 SSH 密钥密码短语

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

将 SSH 密钥添加到 ssh-agent

在向 ssh-agent 添加新的 SSH 密钥以管理您的密钥之前,您应该检查现有的 SSH 密钥并生成一个新的 SSH 密钥。

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

  1. 确保 ssh-agent 正在运行。您可以使用“使用 SSH 密钥密码”中的“自动启动 ssh-agent”说明,或手动启动它:
    1
    2
    3
    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. Add your SSH private key to the ssh-agent. 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_ed25519 替换为您的私钥文件的名称
    1
    $ ssh-add ~/.ssh/id_ed25519
  3. 将 SSH 密钥添加到您在 GitHub 上的帐户。更多信息请参阅 “将新的 SSH 密钥添加到您的 GitHub 帐户

新增 SSH 密钥到 GitHub 帐户

要在 GitHub.com 上配置帐户以使用新的(或现有的)SSH 密钥,还需要将密钥添加到帐户。

在将新的 SSH 密钥添加到 GitHub.com 上的帐户之前,您应该具有:

在向您在 GitHub.com 上的帐户添加新 SSH 密钥后,您可以重新配置任何本地存储库以使用 SSH。 更多信息请参阅 “将远程 URL 从 HTTPS 转换为 SSH”

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

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

    1
    2
    $ clip < ~/.ssh/id_ed25519.pub
    # Copies the contents of the id_ed25519.pub file to your clipboard
  2. 在任何页面的右上角,单击您的个人资料照片,然后单击 Settings(设置)

    setting

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

  4. 单击 New SSH key(新 SSH 密钥)或 Add SSH key(添加 SSH 密钥)。
    new ssh key

  5. 在 “Title”(标题)字段中,为新密钥添加描述性标签。 例如,如果您使用的是个人 Mac,此密钥名称可能是 “Personal MacBook Air”。

  6. 将密钥粘贴到 “Key”(密钥)字段。
    key

  7. 单击 Add SSH key(添加 SSH 密钥)
    add

  8. 如有提示,请确认您的 GitHub 密码。
    password

测试 SSH 连接

设置 SSH 密钥并将其添加到您在 GitHub.com 上的帐户后,您可以测试连接

  1. 打开 Git Bash。

  2. 输入以下内容

    1
    2
    $ ssh -T git@github.com
    # Attempts to ssh to GitHub

    您可能会看到类似如下的警告:

    1
    2
    3
    > The authenticity of host 'github.com (IP ADDRESS)' can't be established.
    > RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    > Are you sure you want to continue connecting (yes/no)?
  3. 验证所看到消息中的指纹是否匹配 GitHub 的公钥指纹 。 如果是,则输入 yes

    1
    2
    > Hi username! You've successfully authenticated, but GitHub does not
    > provide shell access.
  4. 验证生成的消息包含您的用户名。 如果收到“权限被拒绝”消息,请参阅 错误:权限被拒绝(公钥)

来自 github文档

留言

2022-04-03 22:05

⬆︎TOP