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 测试连接状态,能帮你快速定位问题在哪个环节。

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

相关推荐
OpenTiny社区5 小时前
🎨 看完 GenUI SDK 源码我悟了!
前端·vue.js·github
叫我少年8 小时前
Windows 中安装 git
git
千寻girling8 小时前
一份不可多得的《微服务》教程
后端·面试·github
霜落长河10 小时前
用Gemini提升React代码调试效率的教程
github
英勇无比的消炎药12 小时前
TinyRobot 源码深度分析:OpenTiny 的 AI 对话组件库
前端·vue.js·github
逛逛GitHub1 天前
慢慢吃掉你的 Claude Code,在终端里养一只黑洞。
github
jump_jump1 天前
为了重玩金庸群侠传,我研究了一下 Ruffle 怎么复活 Flash
游戏·rust·github
LinXunFeng2 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
DayDaydream2 天前
7 天涨了 8000+ Star,Agent Reach 想给 AI 装上互联网眼睛
github
天衍四九3 天前
Git从0到实战(四):冲突解决与版本回退 —— 别怕,出错了也能救
github