【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 邮箱名"
  • 2、第一次设置pull本地仓的git要先增加ssh密钥
-- 添加ssh
ssh-keygen -t ed25519 -C "可以设置自己想要的密钥名字"
例如:
ssh-keygen -t ed25519 -C "AAA.github"
-- 值得注意的是第一次回车输入的还是要设置密钥文件的名字,如果不设置,默认用的是提示括号里的(id_XXX)作为密钥文件名字此处比较重要,后面要使用
第二次回车输入 密钥口令(要记住,以后每次切换或者登入连接需要使用)
第三次回车,是对第二次回车输入的命令的重复确认
  • 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

  • 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

2.1.3 测试联通

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

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

此时输入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`
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

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

3、还有一种情况

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

总结:

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

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当你在使用命令ssh -T git@github.com测试公钥是否添加成功时,出现了报错"git@github.com: Permission denied (publickey)",以及在执行命令git push -u origin master时出现了错误提示"gitt@github.com: Permission denied (publickey). fatal: Could not read from remote repository",这通常是因为你本地或服务器上没有生成SSH key所导致的。SSH key是一种用于身份验证的加密密钥对,它包括了公钥和私钥两部分。在使用GitGitHub进行通信时,需要将生成的公钥添加到GitHub账户中,以便进行身份验证。 为了解决这个问题,你需要执行以下步骤: 1. 检查你的电脑上是否已经生成了SSH key。你可以通过运行命令"ls -al ~/.ssh"来查看。如果有一个名为id_rsa.pub或id_dsa.pub的文件,那么说明你已经生成了SSH key。 2. 如果没有生成SSH key,你需要使用以下命令生成一个新的SSH key: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 这里的"your_email@example.com"应该替换成你在GitHub上注册的电子邮件地址。 3. 在生成SSH key后,你需要将公钥添加到你的GitHub账户中。你可以使用以下命令将公钥复制到剪贴板: pbcopy < ~/.ssh/id_rsa.pub 然后登录到GitHub账户,转到"Settings" -> "SSH and GPG keys" -> "New SSH key",将公钥粘贴到"Key"字段中,然后点击"Add SSH key"按钮保存。 现在,当你再次执行命令ssh -T git@github.comgit push -u origin master时,应该不再出现"Permission denied (publickey)"的错误提示了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Git错误记录 — git@github.com: Permission denied (publickey)](https://blog.csdn.net/baidu_40188909/article/details/108407895)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MAC电脑gitt@github.com: Permission denied (publickey). fatal: Could not read from remote repository](https://blog.csdn.net/weixin_44468956/article/details/125293590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值