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

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

相关推荐
带娃的IT创业者31 分钟前
大模型Agent的 Meta-Skill(元技能)
github·大语言模型·ai agent·多智能体协作
bryant_meng38 分钟前
【Hugging Face】The GitHub of Open-Source AI Models
人工智能·github·qwen·hugging face·clip
卷心菜投手ovo2 小时前
RAG 为什么引用总是对不上?
后端·github
Hommy882 小时前
【剪映小助手】图片处理接口
开源·github·aigc·剪映小助手·视频剪辑自动化
Adorable老犀牛4 小时前
Git 发布正式版本的一个专属的硬核功能,叫做 打标签(Tag)。
git
散峰而望4 小时前
【算法练习】算法练习精选:陶陶摘苹果(基础+升级)、Music Notes、字串变换,你能AC几道?
数据结构·c++·算法·leetcode·贪心算法·github·动态规划
我先去打把游戏先5 小时前
Ubuntu虚拟机(服务器版本)Git卸载完全教程——彻底移除与清理配置
服务器·git·单片机·嵌入式硬件·物联网·ubuntu·51单片机
不做无法实现的梦~6 小时前
Git Clone 使用 Watt/Steam++ 加速时报证书错误的原因与解决方法
大数据·git·elasticsearch
Smilezyl7 小时前
为了搞懂 AI Agent,我用 6000 行 JS 代码手搓了一个零依赖的 Coding Agent
前端·javascript·github
InsightCore7 小时前
这个12MB的小东西,竟然说要取代所有AI框架?
github