Git推送代码遇权限拒绝及断开错误请求协助
Git推送报错:client_loop: ssh_packet_write_poll: Permission denied 解决方法
检查SSH密钥权限与有效性
- 本地SSH密钥文件权限必须严格设置:执行
chmod 600 ~/.ssh/id_rsa和chmod 644 ~/.ssh/id_rsa.pub,避免权限过宽导致认证失败 - 确认远端Git服务器的
authorized_keys文件里已添加你的本地公钥内容 - 用
ssh -T git@xxxx(替换xxxx为你的服务器地址)测试SSH连接,验证是否能正常通过认证
- 本地SSH密钥文件权限必须严格设置:执行
调整SSH连接存活参数
- 新建或编辑
~/.ssh/config文件,添加以下配置:Host xxxx ServerAliveInterval 60 ServerAliveCountMax 3 TCPKeepAlive yes
这会让SSH连接定期发送心跳包,避免因长时间无数据传输被服务器断开
- 新建或编辑
排查推送内容的大小限制
- 如果推送的是大commit或包含大文件,尝试拆分commit:用
git reset HEAD~n(n是要拆分的commit数)回退,然后分多次小commit推送 - 联系服务器管理员确认是否开启了Git接收数据包大小的限制,必要时调整
- 如果推送的是大commit或包含大文件,尝试拆分commit:用
临时切换推送协议
- 如果服务器支持HTTPS,可临时切换协议推送:执行
git remote set-url origin https://xxxx/your-repo.git(替换为对应HTTPS地址),推送成功后再切回SSH即可
- 如果服务器支持HTTPS,可临时切换协议推送:执行
内容的提问来源于stack exchange,提问作者够钟食药
相关产品推荐
相关产品推荐

