Permission denied (publickey). fatal: The remote end hung up unexpectedly while pushing back to git

本文介绍了一种解决在使用Git进行代码推送时遇到的权限拒绝错误的方法。通过修改.git/config文件中的URL格式,从https://@github.com/替换为https://username@github.com/,成功解决了push失败的问题。

配置完git ssh后 

ssh -T git@github.com 返回正常结果

Hi ****! You've successfully authenticated, but GitHub does not provide shell access

但是在push 的时候出现 如下错误

Permission denied (publickey). fatal: The remote end hung up unexpectedly while pushing back to git repository [duplicate]


解决方法:
.git/config文件将
url = https://@github.com/linglongwang/Demo.git
改为
url = https://username@github.com/linglongwang/Demo.git

再 git push 成功!

stackoverflow 

<think>好的,我现在需要解决用户遇到的Git推送错误:“fatal: the remote end hung up unexpectedly”。这个问题通常与网络连接、SSH配置、仓库过大或权限问题有关。让我先回忆一下常见的解决方法。 首先,用户提到他们参考了引用[1]、[2]、[3]、[4]、[5],所以可能需要检查这些提到的解决方案。比如引用[3]建议调整http.postBuffer的大小,这可能适用于大仓库的情况。而引用[2]涉及SSH密钥权限问题,需要确认公钥是否正确添加到GitHub账户。 接下来,我应该按步骤分解可能的解决方案。第一步可能是检查网络连接,因为远程服务器可能中断。然后检查SSH配置是否正确,比如使用ssh -T测试连接。如果使用HTTP,可能需要调整postBuffer。另外,仓库太大导致超时也是一个可能性,可以考虑压缩提交或分块推送。权限问题的话,需要确保SSH密钥正确,并且仓库的访问权限无误。还有,引用[5]提到的版本不一致,可能需要删除.deploy_git文件夹并重新克隆,或者重新初始化仓库。 还需要考虑其他因素,比如Git版本是否过旧,或者服务器端的问题。但用户提到的引用中没有提到这些,可能优先处理已知的解决方案。另外,用户可能是在向GitHub推送,所以需要特别关注SSH密钥和权限设置是否正确。 现在需要把这些步骤组织成一个清晰的流程,帮助用户逐步排查。可能先建议网络检查,然后SSH配置,调整缓冲区,处理大仓库,权限问题,最后是版本不一致的处理。每个步骤给出具体的命令和操作,确保用户能按步骤执行。同时,引用对应的参考资料,比如调整postBuffer来自引用[3],SSH测试来自引用[2]和[4],版本不一致处理来自引用[5]。 最后,生成相关问题,覆盖其他可能的Git问题,比如权限拒绝、大文件处理等,这样用户如果有其他相关的问题也能找到帮助。</think>### Git推送错误"fatal: the remote end hung up unexpectedly"解决方法 #### 1. 检查网络连接 首先验证网络连接是否正常,使用以下命令测试与远程仓库的连通性: ```bash ssh -T git@github.com # GitHub示例 ``` 若返回"Permission denied (publickey)",说明SSH密钥配置有误(参考[^2]) #### 2. 调整Git缓冲区设置(大文件场景) 对于包含大文件的仓库,设置更大的传输缓冲区: ```bash git config --global http.postBuffer 524288000 # 设置500MB缓冲区[^3] ``` #### 3. 优化SSH连接参数 添加SSH保活参数防止连接超时: ```bash ssh -o ServerAliveInterval=60 git@github.com # 每60秒发送保活信号[^4] ``` 可将该配置写入~/.ssh/config文件永久生效 #### 4. 处理版本不一致问题 当本地与远程历史记录冲突时: ```bash rm -rf .deploy_git # 删除本地缓存 git clone <remote-url> .deploy_git # 重新克隆仓库[^5] ``` #### 5. 分块提交大仓库 对于超过2GB的仓库: ```bash git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | awk '/^blob/ {print substr($0,6)}' | sort --numeric-sort --key=2 | tail -n 20 # 查找大文件 ``` #### 6. 检查SSH密钥配置 ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa # 加载私钥 ssh -T git@github.com # 验证连接 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值