SSH的知识&在线部署踩坑相关
对不起我是小丑,虽然能跑了但hexo g 出来的网页是空白的,推测是插件环境没有搞好导致theme出不来,所以只有空白页面……
自动化之路任重道远啊……
挖坑,有空来填吧
终于跑出来了!太激动了,这次更新值得新开一贴!
痛点
每次本地发布都需要
1
2
3hexo clean
hexo g
hexo d再等github慢悠悠发布,一点都不优雅
多台设备间无法同步
需要手动备份
目标
- 能在线编辑、部署
- 完全不需要本地参与
具体原理
先弄懂本地发布的原理
一种方法是token,我本地用的就是token,走https。
当然也可以用ssh,因为之前接触过,所以后边都用ssh了。
本地仓库与github仓库靠ssh通信。本地有私钥,github上要填写公钥,这样才能连接。
注意啊,帖子里的setting是头像-setting,不是仓库里的setting,我不说是谁找了半天没找到ssh选项……
推广到在线部署
所以要在线上配置一个与本地类似的环境,就可以模拟本地的发布。
用到了action的功能,在每次push后自动触发。
所以核心是在源码仓库放私钥!
流程
- 新建仓库,把本地源文件push上去2.仓库的setting——secrets——actions——new repository secret
1
2
3
4
5
6
7git init
git add .
git commit -m "111"
git branch -M main
git remote add origin git@github.com:KLBBLB/KLBBLB.github.io.git
git push -f origin main
添加三个环境变量,是后面代码要调用的
变量 | 内容 |
---|---|
GITME | 邮箱 |
GITNAME | 用户名 |
HEXO_DEPLOY_PRI | 私钥 |
- .gitinore\workflows下新建.yml文件
1 |
|
4. 踩坑
- 有语法错误不会报错,但是actions不会触发,以此为依据说明有地方错了
- 报错
fatal: could not read Username for 'https://github.com': No such device or address
,把源文件里_config.yml的发布地址由https开头改为git@github.com:10wen/10wen.github.io.git
的ssh地址。这确实是应该提早就想到的,本地的当时使用token的形式发布,这里改为了ssh,当然要改地址!
碎碎念
关于公钥私钥,一开始没有理解,然后突然灵光乍现……可恶啊超算学的东西全忘了……
看来还是要温故而知新啊
SSH的知识&在线部署踩坑相关
http://zjuklbb.top/2023/06/30/SSH的知识&在线部署踩坑相关/