git@github.com: Permission denied (publickey).

本文介绍了解决在使用Git过程中遇到的git@github.com: Permission denied (publickey)错误的方法。通过验证邮箱、生成SSH密钥并将其添加到GitHub账户中,确保能够正常推送代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考来源:

Git使用出现git@github.com: Permission denied (publickey). 处理_JT.X的博客-优快云博客_git@github.com

故障现象:

Administrator@MS-20201021YAOM MINGW64 /d/temp3/huashan (master)
$ git push origin master
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
 

解决方法:

进入git bash界面然后:
第1步,git config --global --list 验证邮箱与GitHub注册时输入的是否一致

             可以通过git config --global user.name “yourname”,git config --global user.email “email@email.com ”(这里得名字和邮箱都是注册github时用的)设置全局用户名和邮箱。

 第2步,ssh-keygen -t rsa -C “这里换上你的邮箱”,一路回车(注意:不需要输入其他内容),直到生成密钥。

根据上面地址和文件名可知, 会在/Users/***/路径下生成一个.ssh\id_rsa.pub文件,密钥就存储在其中:

有秘钥的话直接调到下面第3步,下面不需要看。

如果没找到id_rsa.pub文件,则根据git 软件的屏幕英文打印,看秘钥产生的位置。

 用 txt 工具打开此y.pub秘钥文件。

第3步,使用浏览器到git仓库,添加秘钥

右上角--> settings --> SSH and GPG keys .....


点击Add SSH key

 

第五部,ssh -T git@github.com 测试一下通不通,通了显示如下

即可正常使用。
不通就是
ssh-agent -s
ssh-add ~/.ssh/id_rsa 操作这两步。

Thanks to :

Git使用出现git@github.com: Permission denied (publickey). 处理_JT.X的博客-优快云博客_git@github.com


————————————————
版权声明:本文为优快云博主「JT.X」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_43768946/article/details/90411154

### 解决Git推送时出现的权限被拒绝(publickey)问题 当遇到 `Permission denied (publickey)` 错误时,通常是因为SSH密钥配置不正确或未正确绑定到GitHub账户。以下是可能的原因及解决方案: #### 1. 检查SSH密钥是否已正确添加到GitHub 确保生成的公钥(`.pub`文件)已被正确添加到GitHub账户的SSH keys中。如果不确定是否已正确添加,可以重新上传公钥: ```bash cat ~/.ssh/id_rsa.pub ``` 将输出的内容复制,并在GitHub账户设置中的SSH keys部分进行添加[^1]。 #### 2. 验证SSH连接是否正常 通过以下命令测试与GitHub的SSH连接是否正常: ```bash ssh -T git@github.com ``` 如果返回类似以下内容,则表示连接成功: ``` Hi username! You've successfully authenticated, but GitHub does not provide shell access. ``` 如果仍然报错,则需要检查SSH配置文件是否正确[^1]。 #### 3. 检查SSH密钥是否已加载到SSH代理 如果未将私钥加载到SSH代理中,可能会导致认证失败。可以通过以下命令检查当前SSH代理中的密钥: ```bash ssh-add -l ``` 如果没有列出任何密钥,可以使用以下命令加载私钥: ```bash ssh-add ~/.ssh/your_private_key ``` 注意:如果机器上存在多个GitHub账户,则需要为每个账户配置独立的SSH密钥并指定不同的主机名[^2]。 #### 4. 配置SSH配置文件 编辑或创建SSH配置文件 `~/.ssh/config`,为不同的GitHub账户指定不同的主机名和密钥路径。例如: ```config Host github.com-account1 HostName github.com User git IdentityFile ~/.ssh/id_rsa_account1 Host github.com-account2 HostName github.com User git IdentityFile ~/.ssh/id_rsa_account2 ``` 然后,在克隆或推送代码时,使用指定的主机名: ```bash git clone git@github.com-account1:username/repo.git ``` #### 5. 确保远程仓库URL正确 检查远程仓库URL是否正确指向了正确的主机名。可以通过以下命令查看当前远程仓库URL: ```bash git remote -v ``` 如果需要更改远程仓库URL,可以执行以下命令: ```bash git remote set-url origin git@github.com-account1:username/repo.git ``` #### 6. 清除旧的SSH密钥(可选) 如果之前已经加载了错误的密钥,可以使用以下命令清除所有已加载的密钥: ```bash ssh-add -D ``` 然后重新加载正确的私钥[^2]。 #### 7. 使用HTTPS替代SSH(可选) 如果仍然无法解决问题,可以选择使用HTTPS方式推送代码。首先删除现有的SSH远程仓库地址,然后添加HTTPS地址: ```bash git remote remove origin git remote add origin https://github.com/username/repo.git ``` 推送代码时会提示输入GitHub用户名和密码(或个人访问令牌)[^3]。 --- ### 示例代码 以下是一个完整的示例,展示如何配置多账户SSH并验证连接: ```bash # 编辑SSH配置文件 cat <<EOF > ~/.ssh/config Host github.com-account1 HostName github.com User git IdentityFile ~/.ssh/id_rsa_account1 Host github.com-account2 HostName github.com User git IdentityFile ~/.ssh/id_rsa_account2 EOF # 测试连接 ssh -T git@github.com-account1 ssh -T git@github.com-account2 ``` --- ###
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值