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

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

相关推荐
无小道1 小时前
Git版本控制及其原理:从入门到精通
git·企业
颂love1 小时前
Git的简单学习
git·学习
一个学Java小白2 小时前
git 如何免密提交之 基于 Gitee 的 SSH 配置教程
git
我是谁??2 小时前
ubuntu22.04在线安装docker和nvidia-container-toolkit
git·docker·github
Kessity2 小时前
Git标签管理
git
最幸伏的人2 小时前
PyCharm无限创建Python进程故障总结
windows·python·pycharm
小雨青年2 小时前
GitHub Copilot 自定义扩展实战:Instructions、Prompt Files、Agents 和 Hooks 怎么用
prompt·github·copilot
梦梦代码精2 小时前
电商系统的核心难点:订单与营销系统如何设计?——LikeShop 架构深度拆解(规则计算与状态一致性)
java·开发语言·低代码·架构·开源·github
灵机一物14 小时前
灵机一物AI原生电商小程序、PC端(已上线)-GitHub 原生 gh-stack 上线:彻底告别大 PR 地狱,代码评审效率直接起飞
github