基础
各种前置安装,版本匹配什么的,就不说明了,网上一大堆。
认证
用户名和密码
跳过,终端上传现在已经不支持用户名和密码连接了。
SSH认证
都会把秘钥生成在本地用户的隐藏文件夹 ~.ssh 中,文件 ~/.ssh/id_rsa.pub 存的就是。
没有怎么办?用终端生成一个
1 | $ ssh-keygen -t ed25519 -C "your_email@example.com" |
如果不支持 Ed25519 算法的旧系统,使用以下命令。至于什么算法和系统不需要懂,试一下能生成就行。
1 | $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
生成后,添加代理,光生成放在那里没用。
1 | $ eval "$(ssh-agent -s)" |
我用的是 macOS ,且版本高于 Sierra 10.12.2 ,所以直接手动打开 ~.ssh/config ,然后把文件路径添加进去。
没有 config 就创建一个
1 | $ touch ~/.ssh/config |
然后粘贴下面内容,记得修改文件路径!
1 | $ Host github.com |
1 | $ ssh -T git@github.com |
成功返回如下
1 | $ Hi username! You've successfully authenticated, but GitHub does not provide shell access |
hexo部署
基础
基础的设置网上一大堆,不赘述。
repo
_config.yml 文件是上传前的基础设置。我失败的原因,就在最后的 deploy 参数里。网上很多说什么 token 添加之类的,无论是单独 token 赋值,还是放进 repo 的参数中间,我都失败了。
直接上结论
1 | deploy: |
repo 的参数开头是 git@ !!!我以前的 repo 开头是 https://
之前说过,这个 blog 在23年就建立了,但25年的我部署失败了,原因是就只这个。前缀 git 是 SSH 专属的方式,既然用 SSH认证,格式总得对,就这个3个破字母花了我一天的时间 !&#@%#@@ 我是无意间点到 Code 下拉才发现的,就是打开仓库后,文件预览最上面的 < >Code 按钮。
图片部署
故事开端
本地图片嵌入,上传后就失效,除非图片一起上传。但这样本地需要保留图片,且会越来越大。一旦删除图片,下次就不会部署了。因为部署流程是:仓库内容删除 → 上传,原理不是替换。这也是之前在博客园的经验,嵌入图片我都用的网图链接。
个人图片
个人图片网上没有链接的,所以需要一个中转站,github里建个仓就可以实现,俗称图床。之后步骤流程单独写一篇。用图片展示效果更直接,个人也更习惯用图片说明。
更多参考GitHub官网SSH生成