zoukankan      html  css  js  c++  java
  • 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。

    悲观者更正确,乐观者更成长。时代大潮下,充满着机遇和风险。 目标不同,选择也就不同,人生没有标准答案,对大多数人而言,还是要不停地提高自己,这个世界什么都能快,但学习从来都没有捷径,或者说学习已是捷径。
  • 相关阅读:
    C# 如何telnet IP的某端口/ping 是否通
    centos7.9设置系统时间,并同步到硬件
    基于阿里云 DNS API 实现的 DDNS 工具
    GridControl 通用类2
    使用JSON.stringify时需注意的坑
    java中BigDecimal和0比较
    c# WindowsCommunityToolkit--- Shade Animation
    WPF 取消在触屏上点击按下不松开会出现矩形背景的效果
    c# 反射私有类和私有方法
    c# 汉字转拼音
  • 原文地址:https://www.cnblogs.com/youzi-xuchongyou/p/15093336.html
Copyright © 2011-2022 走看看