• 【git】git@github.com: Permission denied (publickey).报错问题


    1、引发这个问题的情况

    本媛开发,会经常性用到gitee & GitHub两个库
    毕竟国内项目转战仓到gitee,
    但是国外原框架还是GitHub居多
    于是就出现连接pull-push经常性切换问题
    这个报错是因为本地两个仓都有ssh公共私有密钥导致的

    2、解决方案:

    2.1首先排查问题:

    2.1.1 是因为首次本地联通没有配置密钥,或者配置错误?

    如果是因为第一次配置就错误了进行如下操作:

    • 1、打开git-bash

    注意如果切换了gitee到GitHub(或者从GitHub切换到gitee)记得重新设置用户名和邮箱

    git config --global user.name "github 用户名"
    git config --global user.email "github 邮箱名"
    
    • 1
    • 2
    • 2、第一次设置pull本地仓的git要先增加ssh密钥
    -- 添加ssh
    ssh-keygen -t ed25519 -C "可以设置自己想要的密钥名字"
    例如:
    ssh-keygen -t ed25519 -C "AAA.github"
    -- 值得注意的是第一次回车输入的还是要设置密钥文件的名字,如果不设置,默认用的是提示括号里的(id_XXX)作为密钥文件名字此处比较重要,后面要使用
    第二次回车输入 密钥口令(要记住,以后每次切换或者登入连接需要使用)
    第三次回车,是对第二次回车输入的命令的重复确认
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 3、配置好可以在C盘\当前登入用户账号下看到:名约.ssh文件在这里插入图片描述
    • 4.这个时候进入文件夹可以看到你上面用到的第二步中,例如的AAA.github文件名的两个文件:
      在这里插入图片描述
    • 5、然后用记事本打开名字为AAA.github.pub的文件,可以找到对应需要配置到网页GitHub账号中的数据

    开头文件为ssh-(此图插入图片git-3)
    在这里插入图片pic描述
    -/6、紧接着到页面的gitee/github,找到我的设置/settings
    截图以GitHub为例:pic-2

    • 7、看到有ssh表示的标签里面进行新增一个ssh key 名字随便看自己,内容添加上面查看到的内容直接复制进去
      内容添加是本文git-3步骤打开的文件信息

    • 8、尝试配置添加ssh

    ssh-agent -s
    eval `ssh-agent -s`
    ---替换ssh key 
    ssh-add ~/.ssh/AAA.github
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 8、至此配置工作已经结束

    2.1.2、下面进行多账号问题解决

    多平台账号首先进行文件添加
    在.ssh文件夹内添加一个文件config

    在这里插入图片描述
    记事本打开配置如下:

    全文配置无需加引号

    #  User 
    Host gitee.com
     HostName gitee.com
     User gitee上面的用户名(设置的user_name)
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/对应配置到gitee仓里ssh中创建的密钥本地文件的名字
    
    Host github
     HostName github.com
     User GitHub上面的用户名(设置的user_name)
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/对应配置到GitHub仓里ssh中创建的密钥本地文件的名字
     ServerAliveInterval 300
     ServerAliveCountMax 10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2.1.3 测试联通

    我最后配置的GitHub的账号密码,所以测试连接Github
    还是打开git-bash

    输入:
    如果当前设置的git -config账号是gitee的使用:
    ssh -T git@gitee.com
    如果当前设置的git -config账号是github的使用:
    ssh -T git@github.com
    
    • 1
    • 2
    • 3
    • 4
    • 5

    此时输入2.1.1–>第二步中设置的密钥口令,提示如下表示成功连接,可以尽情使用git,clone、pull、push等功能了

    在这里插入图片描述

    2.2.1 还是已经配置过密钥,曾尝试服务器联通也通,之后再次连接报错?

    就是在你pull代码发现报错:
    unable to access ‘https://github.com/XXXXXX.git/’: OpenSSL SSL_connect: Connection was reset in connection to github.com:443
    idea提示:
    在这里插入图片描述
    打开cmd,测试账号联通(输入"ssh -T git@github.com"):

    2.2.1.1 报错提示 Could not open a connection to your authentication agent.报错问题:

    就是说你没有连接启动啦,别慌:

    2.2.1.2 报错提示 Could not open a connection to your authentication agent.解决方案:

    执行这个:

    ssh-agent -s
    eval `ssh-agent -s`
    
    • 1
    • 2
    2.2.1.3 报错提示 Permission denied (publickey).报错问题:

    画中重点,就是标题的报错:没错:【git】git@github.com: Permission denied (publickey).报错问题

    这个时候你可能是用心启动了电脑,或者上一次连接了gitee,这次使用的GitHub…
    不重要,直接看

    2.2.1.4 报错提示 Permission denied (publickey).解决方案:

    执行如下命令:

    ssh-agent -s
    eval `ssh-agent -s`
    ssh-add ~/.ssh/AAA.github
    
    • 1
    • 2
    • 3

    重新输入密钥口令,完美登入解决。

    3、还有一种情况

    并不是上面说的密钥没有设置或者密钥失去连接的问题。
    可能你连接的都是对的,但是ssh默认连接时候时长的,也就是说不能一直进行联通状态,那么需要设置联通时长,即保证ssh自动获取联通状态:【git】关于windows系统git连接ssh设置经常断连问题

    总结:

    网上的东西,我只能说五花八门的,解决方案真的要自己总结整理备注,最重要的是自己测试通过的在发,不要没事CV update的东西就发会坑人的。
    每天奋斗一点点,管他明天如何。一起加油~(没办法环境太卷了-_-|||)

  • 相关阅读:
    binary.write 和 binary.read
    jni学习4.动态注册
    Python科学计算与可视化 C1
    MQ和redis的内部原理一些总结
    玉米社:SEM竞价推广投放之提升转化操作办法
    冷知识:unity使用的是左手坐标系
    通过js操作元素样式属性
    《隐私计算简易速速上手小册》第7章:隐私计算与云计算/边缘计算(2024 最新版)
    sketch设计不得不知道的五个高级功能
    springboot banner
  • 原文地址:https://blog.csdn.net/woyizhizaizhaoni/article/details/128160665