github配置SSH秘钥


github配置SSH秘钥

检查现有 SSH 密钥

关于 SSH 密钥

可以使用 SSH 在 GitHub.com 上的存储库中执行 Git 操作。 有关详细信息,请参阅“关于 SSH”。

如果有现有的 SSH 密钥,则可以使用该密钥通过 SSH 对 Git 操作进行身份验证。

检查现有 SSH 密钥

在生成新的 SSH 密钥之前,应该检查本地计算机是否存在现有密钥。

  1. 打开终端。

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

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

    • id_rsa.pub
    • id_ecdsa.pub
    • id_ed25519.pub

    提示:如果收到错误,指示 ~/.ssh 不存在,则表明默认位置中没有现有的 SSH 密钥对。 您可以在下一步中创建新的 SSH 密钥对。

生成新 SSH 密钥

可在本地计算机上生成新的 SSH 密钥。 生成密钥后,可以将密钥添加到您在 GitHub.com 上的帐户,以启用通过 SSH 进行 Git 操作的身份验证。

  1. 打开终端。

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

    $ 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 ALGORITHM key pair.

将 SSH 密钥添加到 ssh-agent

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

  1. 在后台启动 ssh 代理。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    根据您的环境,您可能需要使用不同的命令。 例如,在启动 ssh-agent 之前,你可能需要通过运行 sudo -s -H 根访问,或者可能需要使用 exec ssh-agent bashexec ssh-agent zsh 运行 ssh-agent。

  2. 将 SSH 私钥添加到 ssh-agent。 如果使用其他名称创建了密钥或要添加具有其他名称的现有密钥,请将命令中的 id_ed25519 替换为私钥文件的名称。

    $ ssh-add ~/.ssh/id_ed25519
  3. 将 SSH 密钥添加到 GitHub 上的帐户。 有关详细信息,请参阅“将新的 SSH 密钥添加到 GitHub 帐户”。

新增 SSH 密钥到 GitHub 帐户

关于向帐户添加 SSH 密钥

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

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

生成 SSH 密钥对后,必须将公钥添加到 GitHub.com 以启用帐户的 SSH 访问。

先决条件

在将新的 SSH 密钥添加到 GitHub.com 上的帐户之前,请完成以下步骤。

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

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

为 GitHub.com 上的帐户添加新 SSH 身份验证密钥后,可以重新配置任何本地存储库以使用 SSH。 有关详细信息,请参阅“将远程 URL 从 HTTPS 切换到 SSH”。

注意:GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。

自该日期起,不再支持 DSA 密钥 (ssh-dss)。 无法在 GitHub.com上向个人帐户添加新的 DSA 密钥。

2021 年 11 月 2 日之前带有 valid_after 的 RSA 密钥 (ssh-rsa) 可以继续使用任何签名算法。 在该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。 一些较旧的客户端可能需要升级才能使用 SHA-2 签名。

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

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

    $ 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. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。
    用户栏中的 Settings 图标
  2. 在边栏的“访问”部分中,单击 “SSH 和 GPG 密钥”。

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

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

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

  6. 将公钥粘贴到“密钥”字段。密钥字段

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

测试 SSH 连接

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

  1. 打开终端。

  2. 输入以下内容:

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

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

    > 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

    > Hi USERNAME! You've successfully authenticated, but GitHub does not
    > provide shell access.

    你可能会看到此错误消息:

    ...
    Agent admitted failure to sign using the key.
    debug1: No more authentication methods to try.
    Permission denied (publickey).

设置github ssh代理

如下:

Host github.com
    User git
    ProxyCommand nc -v -x 127.0.0.1:2341 %h %p

文章作者: Kevin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kevin !
评论
  目录