当前位置: 首页 > news >正文

零服务器免备案!用Gitee代理+GitHub Pages搭建个人博客:绕过443端口封锁实战记录

#GitHub Pages #Gitee代理 #SSH密钥管理 #Jekyll博客 #网络穿透

场景:自己的电脑没有添加github的ssh代理,只有gitee的代理

实现效果,在公网可以运行个人博客。在本地更改内容后公网同步更新。

最开始的模板

最终实现的博客模板:

https://may16138cccccccccccccccc.github.io/

电脑端:

手机端:

环境:

  • git 已安装和配置环境
  • GitHub正常访问,已有账号
  • Gitee正常访问,已有账号

1 在github创建简易版网站模板

创建仓库

仓库名是自己的用户名+(github.io)

比如:我的名字是may,仓库名设置成may.github.io

这个后缀相当于你告诉GitHub说,自己要建一个网站了,GitHub直接给你一个域名

不用购买服务器维护,也不用国内网站ICP备案

查看部署情况

测试网站标题

测试博客框架

https://may16138cccccccccccccccc.github.io/

点击之后的跳转页面

模板下载

创建文件夹,下载想要的博客模板做准备

  • 官方说明文档

Adding a theme to your GitHub Pages site using Jekyll - GitHub Docs

  • 官方模板库

https://pages.github.com/themes/

下面是其中的4个模板

2 生成gitee和GitHub公钥

在本地电脑配置gitee和github版本控制仓库

如果你电脑上没有GitHub账号的git版本控制仓库,需要先创建账号。

我这里出错是因为:

输入 clone GitHub仓库代码报错(没有报错可以跳过这一步)

我原本电脑上绑定的是gitee国内的代码托管平台,现在需要把国外的代码托管平台页绑定。

直接clone远程GitHub 出错(没有报错可以跳过这一步)
  1. **git clone **https://github.com/May16138cccccccccccccccc/May16138cccccccccccccccc
  • 错误提示:

error: RPC failed; curl 28 Recv failure: Connection was reset fatal: expected flush after ref listing

解决方案:

$ git config --global http.sslVerify “false”

这里是网络连接不稳定,输入指令重新clone

  1. git clone https://github.com/May16138cccccccccccccccc/May16138cccccccccccccccc.github.io.git

Cloning into ‘May16138cccccccccccccccc.github.io’…

  • 错误提示:

fatal: unable to access

Failed to connect to github.com port 443 after 21071 ms: Couldn’t connect to server

解决方案1:配置文件设置,对两个仓库同时修改配置文件(没有报错可以跳过这一步)

没有连接权限,我电脑连接的是gitee而不是github。需要把GitHub加入版本控制权限。

打开git,输入下面的代码

git config --global -l    // 查看配置信息
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "2951400450@qq.com"   // 把gitee加入权限
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "2951400450@qq.com"   // 把GitHub加入权限

在config文件右键以文本形式打开,输入配置信息

# 配置信息
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.gitee# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.github
解决方案2:报错443(没有报错可以跳过这一步)

如果网络不稳定,看一下是不是自己的代理端口号和配置文件不一致。我把代理端口号改成,配置文件的端口号了。

在git输入:git config --global --edit

git clone https://github.com/你的仓库

3 配置gitee公钥

账号设置公钥

官方教程:添加公钥

SSH 公钥设置 | Gitee 帮助中心

测试公钥指令是否添加成功:验证服务器指纹是否合法
ssh -T git@gitee.com
  • 从 Gitee 官方获取指纹:访问 Gitee 帮助文档 或官方渠道,找到 Gitee 的 SSH 指纹。
  • 对比指纹:确保你看到的指纹与官方公布的完全一致
输入 <font style="color:rgb(64, 64, 64);">yes</font> 接受指纹

如果指纹匹配,输入 <font style="color:rgb(64, 64, 64);">yes</font> 确认信任服务器:

4 配置GitHub公钥

账号设置公钥

个人的头像设置这里点进去,新建公钥

测试公钥指令是否添加成功
$ ssh -T git@github.com

如果显示下面这个图片就是成功配置

报错情况(如果没报错直接跳过)

git@github.com: Permission denied (publickey).

核心原因
  • 本地 SSH 密钥未正确配置:GitHub 无法验证身份:
    1. 未生成 SSH 密钥。
    2. 公钥未添加到 GitHub 账户。
    3. SSH 密钥未加载到 SSH 代理(Agent)。
    4. 密钥文件权限错误。
解决方案
步骤 1:检查是否存在 SSH 密钥
# 查看是否有 id_ed25519 或 id_rsa 文件
ls -al ~/.ssh
  • 如果已有密钥:跳过生成步骤,直接进入步骤 3。
  • 如果没有密钥:生成新的 SSH 密钥。
步骤 2:生成 SSH 密钥(若无密钥)
# 使用更安全的 Ed25519 算法
ssh-keygen -t ed25519 -C "your_email@example.com"
  • 按回车接受默认保存路径 (<font style="color:rgb(64, 64, 64);">~/.ssh/id_ed25519</font>)。
  • 设置密码(可选,但建议增加安全性)。
步骤 3:将公钥添加到 GitHub
  • 复制公钥内容
# 针对 Ed25519 密钥
cat ~/.ssh/id_ed25519.pub
# 或 RSA 密钥
cat ~/.ssh/id_rsa.pub
  • 添加到 GitHub
    1. 登录 GitHub → Settings → SSH and GPG keys
    2. 点击 New SSH key,粘贴公钥内容。
    3. 保存并验证。

新增密钥

账号密码验证

步骤 4:启动 SSH 代理并添加密钥
# 启动 SSH 代理
eval "$(ssh-agent -s)"
# 添加私钥到代理(Ed25519 密钥)
ssh-add ~/.ssh/id_ed25519
# 或 RSA 密钥
ssh-add ~/.ssh/id_rsa
步骤 5:测试 SSH 连接
再次输入验证 调试 SSH 连接 成功响应
ssh -Tv git@github.com  # 查看详细日志
Hi username! You've successfully authenticated...

5 博客

上传刚刚下载好的博客模板复制到github仓库

先clone远程仓库
git clone -b origin https://github.com/username/myProject.git
再把下载的模板放在仓库,提交github

将你的模板代码,放到含有.git库的对应文件夹中

右键Bash

git status  ------查看提交状态
git add .      -----添加到暂存仓库
git commit -m "提交说明" 
git push origin master  ------gitee默认主分支master          gitee推送远程仓库
git push origin main -------GitHub默认主分支main             GitHub推送远程仓库
将你的代码提交就可以了
我这里测试提交一个文件_config.yml
git push origin main

部分命令说明

git clone命令可以将整个远程仓库克隆到本地,并且可以指定拉取的分支。使用-b选项可以指定要拉取的分支。例如:

$ git clone -b origin https://github.com/username/myProject.git

执行上述命令后,当前分支将是origin分支,而不是默认的master分支

继续提交模板,修改内容,公网访问

这里等待更新

最终效果


更多文章在下面这个号记录:
我的个人文章记录

参考资料:

  1. 【已解决】error: RPC failed; curl 28 Recv failure: Connection was reset_error: rpc failed; curl 28 recv failure: connectio-CSDN博客
  2. https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll
  3. 在windos中同时使用gitee与github
  4. https://zhuanlan.zhihu.com/p/51240503
  5. Git 配置代理,解决 “Failed to connect to github.com port 443” 及 “Recv failure: Connection was reset” 等问题
http://www.xdnf.cn/news/1603.html

相关文章:

  • 基于Flask的漏洞挖掘知识库系统设计与实现
  • 对抗生成进化:基于DNA算法的AIGC检测绕过——让AI创作真正“隐形“
  • 生物信息学技能树(Bioinformatics)与学习路径
  • 04-libVLC的视频播放器:获取媒体信息
  • 【裁员感想】
  • 关于webpack的知识点
  • 《似锦》:画饼之—你画给我我画给你
  • java 设计模式之代理模式
  • Android Compose Activity 页面跳转动画详解
  • 【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对
  • ubuntu磁盘挂载
  • MySQL GTID集合运算函数总结
  • e实例性能测评:Intel Xeon Platinum处理器,经济型入门级服务器
  • Java设计开发商城抢票功能
  • Sql刷题日志(day3)
  • 代码随想录算法训练营第二十天
  • 关于C语言的模拟物理模型
  • vue3 el-dialog新增弹窗,不希望一进去就校验名称没有填写
  • SQL刷题记录贴
  • Oracle测试题目及笔记(单选)
  • 赛灵思 XCVU3P‑2FFVC1517I XilinxFPGA Virtex UltraScale+
  • AI在市场营销分析中的核心应用及价值,分场景详细说明
  • 【创新实训个人博客】前端实现
  • 【运维学习】lvs + keepalived + 主从dns 项目搭建
  • Valgrind的使用复习
  • 更换 CentOS 7.9 的系统源
  • 【软考-系统架构设计师】ATAM方法及效用树
  • 【python】pyCharm常用快捷键使用-(2)
  • C++入门基础:命名空间,缺省参数,函数重载,输入输出
  • blender 录课键位显示插件(图文傻瓜式安装)