GitHub新手必看:SSH密钥设置和‘Permission Denied‘错误解决指南 ...

打印 上一主题 下一主题

主题 542|帖子 542|积分 1626


Github SSH密钥错误解决指南

问题形貌
当您实验从GitHub堆栈拉取或推送代码时,可能会遇到如许的错误信息:“git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.” 这雷同于您试图进入一间锁着的房间,但您没有正确的钥匙。
解决步调

  • 检查您的钥匙串

    • 在终端运行 ssh-add -l 来检查您是否已有SSH密钥,即访问GitHub的“钥匙”。
    • 如果没有,想象您需要制作一把新钥匙。运行以下下令来创建它:
      1. ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
      复制代码

  • 把新钥匙挂到钥匙串上

    • 利用以下下令将新生成的SSH密钥添加到SSH-Agent,就像把新钥匙挂到钥匙串上一样:
      1. ssh-add ~/.ssh/id_rsa
      复制代码

  • 告诉管理员(GitHub)您的新钥匙

    • 打开 ~/.ssh/id_rsa.pub 文件,复制内里的内容。这就是您的公钥,相当于钥匙的副本。
    • 登录GitHub,进入“Settings” -> “SSH and GPG keys”,点击“New SSH key”,粘贴您的公钥内容。

  • 测试门锁

    • 运行以下下令,检查您是否能与GitHub乐成通讯:
      1. ssh -T git@github.com
      复制代码
    • 如果系统显示“Hi [Your GitHub Username]! You’ve successfully authenticated…”,则表示乐成。

  • 实验开门(推送代码)

    • 现在实验推送代码到GitHub:
      1. git push origin main
      复制代码

如果在执行这些步调后,问题仍然存在,您可能需要检查是否有多个SSH密钥或其他特别设置问题。
附:第1步中生成SSH密钥的详细步调(终端会弹出交互)

当您运行 ssh-keygen 下令时,系统会引导您完成几个步调,就像制作一把特别钥匙的过程:

  • 选择钥匙存放所在

    • 系统会询问您盼望将密钥生存在哪个位置,默认路径是 C:\Users\您的用户名/.ssh/id_rsa。
    • 您可以接受默认路径,或者指定一个新的存放所在。

  • 设置钥匙的暗码保护(可选):

    • 系统会询问您是否要为这把钥匙设置暗码保护。这就像为您的钥匙设置一个暗码,增加安全性。
    • 您可以选择设置一个暗码,也可以不设置,直接按Enter键。

完成这些步调后,您将拥有一对新的SSH密钥,包括一个公钥(相当于钥匙的副本)和一个私钥(相当于实际的钥匙)。接下来,您需要将公钥添加到GitHub,并测试您的SSH毗连。
当您运行 ssh-keygen 下令以生成SSH密钥时,系统会执行一系列操作并提供一些反馈信息。下面是这个过程的详细步调和每一步所展示的信息:

  • 启动生成过程

    • 当您在终端输入 ssh-keygen -t rsa -b 4096 -C "您的邮箱地点" 时,系统开始创建一个新的SSH密钥对。
    • 这相当于制作一对高安全性的钥匙和钥匙副本。

  • 选择密钥生存位置

    • 系统会询问您盼望将密钥生存在哪里。例如:“Enter file in which to save the key (C:\Users\25451/.ssh/id_rsa):”。
    • 您可以接受默认路径,或输入一个新的路径。这就像选择将您的钥匙放在哪个抽屉里。

  • 设置暗码短语(可选):

    • 系统会询问您是否要为密钥设置一个暗码短语:“Enter passphrase (empty for no passphrase):”。
    • 您可以设置一个暗码短语,增加额外的安全条理,或直接按Enter键跳过。这相当于为您的钥匙加上一个暗码锁。

  • 确认暗码短语

    • 如果您设置了暗码短语,系统会要求您再次输入以确认:“Enter same passphrase again:”。
    • 确认后,继承下一步。

  • 密钥生成完成

    • 当密钥生成完毕,系统会显示相干信息,例如:
      1. Your identification has been saved in C:\Users\25451/.ssh/id_rsa
      2. Your public key has been saved in C:\Users\25451/.ssh/id_rsa.pub
      复制代码
    • 这告诉您私钥(identification)和公钥(public key)的生存位置。

  • 密钥指纹和Randomart图像

    • 系统还会显示密钥的指纹和Randomart图像,例如:
      1. The key fingerprint is:
      2. SHA256:azNoG0XUiqPo3qrMvYguXfi1YLQH8Tx3D+qkEZfkGGA 2545197649@qq.com
      3. The key's randomart image is:
      4. +---[RSA 4096]----+
      5. |    E.  ..       |
      6. |   .. ... .      |
      7. |     + *.o       |
      8. |    o O.* o      |
      9. |   + + *So o     |
      10. |  o * +oo.  .    |
      11. | o + ++*=        |
      12. |= =...o+.o       |
      13. |=Bo+o .          |
      14. +----[SHA256]-----+
      复制代码
    • 这些信息提供了您的密钥的一个视觉和加密择要。

完成这些步调后,您的SSH密钥对就创建好了。您的私钥(id_rsa文件)是您个人生存的,而公钥(id_rsa.pub文件)需要添加到GitHub账户中,以便进行安全的通讯。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表