pycharm Git 连接 GitHub 报错全记录:从 SSL 证书到 SSH 密钥,一步步踩坑与解决
2026/5/12 1:46:33 网站建设 项目流程

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并配置:

gitconfig--globalhttp.sslCAInfo"C:\Users\...\cacert.pem"

Push 仍然报同样的错误。

跳过 SSL 验证(临时方案)

在 PyCharm 的 Terminal 中执行:

gitconfig--globalhttp.sslVerifyfalse

再 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. 检查是否有现成密钥
ls~/.ssh/

我是新环境,啥也没有。

2. 生成新密钥
ssh-keygen-ted25519-C"你的GitHub邮箱"

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

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

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

4. 添加到 GitHub

浏览器打开:https://github.com/settings/keys
点击New SSH key,粘贴公钥,保存。

5. 测试连接
ssh-Tgit@ssh.github.com-p443

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

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询