fatal: “Could not read remote” -- Mac下使用Git Push显示权限错误

本文介绍了如何解决在使用Git推送代码时遇到的SSH权限拒绝问题。通过生成新的SSH密钥并将其添加到GitHub账户中,可以确保代码正常推送。

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

我昨天在提交项目的时候遇到了这个问题:

在终端输入git push origin master 这条命令时 终端显示
图片描述

Permission denied (publickey).
fatal: Could not read from remote repository.

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

这个问题的出现主要是 我的SSH key被我重新覆盖了一遍 但是github上面没有添加这个SSH key

所以我搜索了网上的解决方法,如下:

在终端输入: ssh-keygen -t rsa -C "AndIMissU"
这条命令的“”里面填写的是自己GitHub的用户名

终端出现:

   Generating public/private rsa key pair.
   Enter file in which to save the key (/var/root/.ssh/id_rsa):

按下回车

终端出现:

/var/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y

输入y回车

终端出现:

Enter passphrase (empty for no passphrase): 

按下回车

终端显示:

Enter same passphrase again: 

最后回车出现:

Your identification has been saved in /var/root/.ssh/id_rsa.
Your public key has been saved in /var/root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7emPWueS2x2NHFIliv2E65vDsO9KLZo5JHwytj8aRQs AndIMissU
The key's randomart image is:
+---[RSA 2048]----+
|              . .|
|           o o o |
|      E . . + o  |
|       o o   =   |
|     .  S . o o  |
|      *.o..+ o + |
|     ..B  *=+ + .|
|      ..oB+*o+ . |
|      .o*+=BO..  |
+----[SHA256]-----+

我们可以看到 我们的SSH key就存放在 /var/root/.ssh/id_rsa.pub目录下
然后我们需要查看一下 SSH key
在终端中输入 cat /var/root/.ssh/id_rsa.pub(这里的cat 后面加的是你自己存放的SSH key 的路径)下面的就是我的路径:
图片描述

此时cat 输入以后 出现 你要的SSH key
图片描述

然后:打开GitHub的Settings 添加一个新的SSH key

图片描述

最后一步:复制刚刚cat到的SSH key 添加进入下面的红色框框内 这样我们就可以正常的push和pull啦

图片描述

使用 `git push -u origin lfx` 命令时,如果遇到 `error: Could not read from remote repository` 的错误,通常表明 Git 无法访问远程仓库。以下是可能导致此问题的常见原因及对应的修复方法: 1. **SSH 配置问题** Git 依赖 SSH 密钥来验证用户身份并访问远程仓库(如 GitHub、GitLab)。如果本地没有配置正确的 SSH 密钥,或者密钥未添加到 SSH 代理中,就会导致无法读取远程仓库。 - 确保已生成 SSH 密钥对并将其添加到远程仓库的账户设置中(如 GitHub 的 SSH 设置)。 - 使用以下命令检查是否已添加密钥: ```bash eval "$(ssh-agent -s)" ssh-add -l ``` - 如果没有看到密钥路径,使用以下命令添加: ```bash ssh-add ~/.ssh/id_rsa ``` 2. **远程仓库 URL 配置错误** 如果远程仓库的 URL 不正确,Git 将无法找到对应的仓库。 - 使用以下命令检查远程仓库的 URL: ```bash git remote -v ``` - 如果 URL 不正确,使用以下命令更新它: ```bash git remote set-url origin git@github.com:<username>/<repository>.git ``` 3. **网络连接问题** 如果本地网络无法访问远程仓库服务器(如 GitHub),Git 也会报出此类错误- 检查网络连接,并尝试访问远程仓库的网页(如 GitHub 页面)以确认是否能够正常打开。 - 如果使用代理,确保 Git 配置了正确的代理设置: ```bash git config --global http.proxy http://proxyuser:[email protected]:port git config --global https.proxy https://proxyuser:[email protected]:port ``` 4. **权限不足** 如果当前用户没有权限访问远程仓库(例如,没有写权限),Git 也会报错。 - 确保使用的 SSH 密钥与远程仓库账户绑定,并且该账户有权限推送代码。 - 如果使用 HTTPS URL,确保输入了正确的用户名和密码。 5. **分支不存在于远程仓库** 如果远程仓库中不存在目标分支(如 `lfx`),可以尝试使用 `-u` 参数设置跟踪分支,或者先创建远程分支: - 使用以下命令推送并设置跟踪分支: ```bash git push -u origin lfx ``` 6. **SSH 配置文件问题** 如果 `~/.ssh/config` 文件配置错误,也可能导致 SSH 连接失败。 - 检查 `~/.ssh/config` 文件是否存在拼写错误或不正确的配置项。 ### 示例操作 以下是一个完整的修复流程示例: ```bash # 检查 SSH 代理是否运行 eval "$(ssh-agent -s)" # 添加 SSH 密钥 ssh-add ~/.ssh/id_rsa # 检查远程仓库 URL git remote -v # 如果 URL 不正确,更新远程仓库 URL git remote set-url origin git@github.com:<username>/<repository>.git # 推送分支并设置跟踪 git push -u origin lfx ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值