pycharm Git 连接 GitHub 报错全记录:从 SSL 证书到 SSH 密钥,一步步踩坑与解决

Git 连接 GitHub 报错全记录:从 SSL 证书到 SSH 密钥,一步步踩坑与解决

问题背景

我在本地用 PyCharm 开发了一个串口聊天工具,想推到 GitHub 新建的仓库 chatByCom。结果从 Push 开始,一路遇到各种错误,折腾了小半天才彻底解决。

本文按时间线记录所有报错和解决方法,希望能帮到遇到同样问题的你。


第一个错误:SSL 证书问题(HTTPS)

报错信息

复制代码
fatal: unable to access 'https://github.com/wanghannew1/chatByCom.git/': 
SSL certificate problem: unable to get local issuer certificate

原因

本地 Git 无法验证 GitHub 的 HTTPS 证书,常见于:

  • 公司网络有代理或防火墙
  • Git 自带的 CA 证书包过旧或损坏
  • 使用了自签名证书的环境

尝试解决(未成功)

我按照网上教程更新了 cacert.pem 并配置:

bash 复制代码
git config --global http.sslCAInfo "C:\Users\...\cacert.pem"

Push 仍然报同样的错误。

跳过 SSL 验证(临时方案)

在 PyCharm 的 Terminal 中执行:

bash 复制代码
git config --global http.sslVerify false

再 Push,暂时绕过了 SSL 检查。

⚠️ 注意:这只是临时方案,长期建议还是解决证书问题或用 SSH。


第二个错误:SSH 端口 22 被拒绝

既然 HTTPS 证书老出问题,我决定改用 SSH 方式连接 GitHub。

报错信息

复制代码
ssh: connect to host github.com port 22: Connection refused
Could not read from remote repository.

原因

公司/学校网络通常封禁了 22 端口,导致 SSH 根本无法连上 GitHub。

解决:使用 443 端口

GitHub 提供了一个备用 SSH 地址 ssh.github.com,走 443 端口(HTTPS 端口,一般不会被封)。

将远程仓库地址改为:

复制代码
ssh://git@ssh.github.com:443/wanghannew1/chatByCom.git

在 PyCharm 中操作:Git → Manage Remotes → 编辑 origin URL

这次连接终于通了,但又报了新错误 ⬇️


第三个错误:Permission denied (publickey)

报错信息

复制代码
Warning: Permanently added '[ssh.github.com]:443' (ED25519) to the list of known hosts.
git@ssh.github.com: Permission denied (publickey).

原因

SSH 连接已经成功建立,但我还没配置 SSH 密钥 ,GitHub 拒绝了我的身份验证。

这个报错说明网络已通,离成功只差最后一步。

解决:生成并添加 SSH 密钥

1. 检查是否有现成密钥
bash 复制代码
ls ~/.ssh/

我是新环境,啥也没有。

2. 生成新密钥
bash 复制代码
ssh-keygen -t ed25519 -C "你的GitHub邮箱"

一路回车即可(不设密码方便推送)。

3. 复制公钥
bash 复制代码
cat ~/.ssh/id_ed25519.pub

输出一整行 ssh-ed25519 AAAA... 开头的内容,全部复制。

4. 添加到 GitHub

浏览器打开:https://github.com/settings/keys

点击 New SSH key,粘贴公钥,保存。

5. 测试连接
bash 复制代码
ssh -T git@ssh.github.com -p 443

看到 Hi xxx! You've successfully authenticated 就表示成功。

6. 推送代码
bash 复制代码
git push origin master

一切正常,代码终于推上去了!


总结

这次踩坑的关键路径是:

复制代码
HTTPS SSL 证书错误 
  → 跳过 SSL 验证(临时)
  → 换 SSH 遇到端口 22 被禁 
  → 改用 443 端口 
  → 配置 SSH 密钥 
  → 成功推送 ✅

最终生效的配置

  • 远程地址ssh://git@ssh.github.com:443/wanghannew1/chatByCom.git
  • SSH 密钥ed25519,添加到 GitHub 账户
  • 端口:443(避免公司网络封禁 22)

给同样踩坑的你的建议

  1. 公司网络环境下,SSH + 443 端口 是更稳妥的方式。
  2. Permission denied (publickey) 不是网络问题,是密钥没配,别像我一样反复检查网络。
  3. 善用 ssh -T 测试连接状态,能帮你快速定位问题在哪个环节。

希望这篇踩坑记录对你有帮助。如果还有问题,欢迎评论区交流!

相关推荐
蚕豆糯米饭5 小时前
Github Copilot 研发效能提升实战指南
ai·github·copilot·ai编程
AlfredZhao7 小时前
GitHub 克隆他人私有仓库:从授权到下载
github
毕业设计7038 小时前
(免费领源码)基于Python的博物馆研学活动管理系统的设计与实现22724- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·mysql·随机森林·pycharm·django·flask·推荐算法
智能制造产品经理代码提升8 小时前
Windows Git 多 GitHub 账号切换(GCM 管理凭据,不覆盖原有账号)
github
Wang's Blog9 小时前
Java框架快速入门: Spring Security+OAuth2之核心角色与授权流程
java·spring·github
dong_junshuai9 小时前
每天一个开源项目#100 OpenCodeReview:2.6万星的低噪声AI审查器
程序员·开源·github
峰向AI9 小时前
还在用 Ableton?这个 3.5K Star 的免费音序器,让你在手机上写微分音音乐
github
zho_uzhou9 小时前
Git入门概念
git
SL_staff10 小时前
战略落地的最后一公里:从目标到个人日历的自动化链路实现
java·github·全栈
凌奕10 小时前
OpenCodeReview 架构拆解:AI Code Review 为什么不能只是 Git Diff + LLM?
llm·github·agent