GitHub Desktop报错 Authentication failed. Some common reasons include

[注意:前面都是废话,重点在后面的解决方案]

背景

   这几天在学习GitHub,虽然之前用过一段时间,但是感觉好多东西不懂,这个用好了对于工作学习帮助会很大,方便安全。所以想系统的学习下。后续再去了解下gitee(关键是速度快)。昨晚搞了一晚上没解决这问题,今天上午才解决,所以有必要写一篇文章,虽然大神很多,但是小白也不少,我也是小白之一。

环境

   Windows 10企业版

   Git

   GitHub Desktop

  

问题

  克隆仓库的时候报错  Authentication failed. Some common reasons include:

      

 

   大概意思就是授权失败,我遇到的这个问题的 主要原因是最后一条:“- If you use SSH authentication, check that your key is added to the ssh-agent and associated with your account.”

  

 

尝试过程

   ①网上有说“在GitHub Desktop -> Repository -> Repository Settings -> Remote 中将ssh URL改成 https URL即可”,这个菜单压根就进不去;

  ②这似乎碰到的不是同一个问题,虽然帮助好多人解决了问题:git中fatal: Authentication failed的问题

  ③这篇(Authentication Failure with GitHub Desktop #8860)还是挺有用的,奈何全英文当时没看懂,有个人已经抓到重点了:

   

 

   ④后面基本确认是ssh key的问题,还查看了官方教程 生成新 SSH 密钥并添加到 ssh-agent         新增 SSH 密钥到 GitHub 帐户,本来已经生成了类似id_ed25519.pub的文件,但是还是没用:

    

         检查现有 SSH 密钥:我的开始是按照官方教程生成id_ed25519.pub,没成功,后来生成的id_rsa_pub才可以,这个具体原因不知,可能是因为上图提到的系统版本问题,也不深究了。

    

   ⑤另外还看过这个,但是我的是有known_hosts 这个文件的。

  

1 ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

 

 

⑥最终解决是在这里:ssh-keygen -t rsa -C"your_email@youremail.com"

对于大多数人来说,上面说的都是废话.....

解决方案

总结一下步骤:

 前提是已经装好git和GitHub Desktop。

一.先检查现有 SSH 密钥

  1. 打开 Git Bash。

  2. 输入 ls -al ~/.ssh 以查看是否存在现有 SSH 密钥(这一步也可以直接到文件夹找):
    1 $ ls -al ~/.ssh
    2 # Lists the files in your .ssh directory, if they exist(列出.ssh文件夹里的文件)
      

 

           3. Git Bash里的结果:

             

            文件夹此时的状态:

          

 

 

           4.结论:缺少公钥和私钥对。(如果有了如下公钥和私钥对,直接到第三步)。

              备注:   如果存在公钥,默认情况下的公钥的文件名是以下之一:

       

 

 

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

  这里不建议用官网的教程,因为我用后失败了,这里用这位兄弟写的教程

  1.继续上面的Git Bash,邮箱就是自己注册GitHub的邮箱,比如“110@qq.com”,后面要求输入密码啥的,直接回车即可:

     

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

   

 

 

  2.此时再在Git Bash输入

1 ls -al ~/.ssh

  得到:

 

   

 

 3.到”C:\Users\用户名\.ssh“,用编辑器打开id_rsa.pub文件,复制里面的一串代码(全部都要复制)。

 4.登录GitHub账户,单击右上角的头像,选择Settings,选择SSH and GPG keys,然后单击绿色的“New SSH key”,标题随便起一个名字,我是家里的机器就填了“Home”。key就是上面一步复制的id_rsa.pub文件里的代码:

    

 

     

 

   5.然后单击Add SSH key,会让你重新输一遍密码:

    

 

   6.最终确认后的结果是这样:

    

 

 7.最后一步,测试 SSH 连接,在Git Bash中输入以下内容:

  

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

  结果为:

   

 

  说明成功了!现在再去Git Desktop,克隆仓库就可以了:

    

 

 

备注:如果上面“$ ssh -T git@github.com”有问题,是这样的:

  

 

 

后记

  写这篇随笔也用了几个小时,真正有效的步骤其实就那么几步,希望能够帮助到别人吧。后续会学习《Version Control with Git》,这本书是前几天读的入门书籍《GitHub入门》推荐的,大概是用命令行来玩GitHub。

posted @ 2021-08-03 10:54  Youse的二分口粮地  阅读(5107)  评论(2编辑  收藏  举报