余苏明的幻想乡

用ssh实现hexo免输密码上传文章

写在前面

最近几天一直在修修改改配置文件,每次hexo d都要输一遍用户名密码,心累。就到网上找了一下教程,怎么实现不要输密码,其实就是在github这个仓库里面添加公钥就行

1、客户端生成密钥对

在客户端执行下面的命令

1
2
ssh-keygen -t rsa -C "summingbest@gmail.com" #邮箱填你自己的github邮箱
# 然后会有几个要输入的地方,直接回车就行

执行完成之后cd ~/.ssh到你用户目录下面的.ssh目录里,你会看到两个文件

1
2
[summingyu@localhost .ssh]$ ls
id_rsa id_rsa.pub

这两个文件就是你的公私钥了。然后
cat id_rsa.pub将里面的内容复制,如下

1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw7/rIO8jBbejKOvZdlZtxC8K3OMuFeC28AnVQoZckRQxivtBkqXeg8cPGBF54UMaQVkMXpaYrfBg+WpjZjqO/V7g33ePCicNBr+7rUXznD2hiSEFDknESuGujtSWgoayfV3u+qkAcBXxL7WvG4kizd6DYq/Tf/6ZHcOQavzpobr52u8NysUkrAV8ZSO9Dl306msfkVhfi/QdkXIC4X27QXoFm5hguY/JmNCI9mHal5h1+a1qr2m+iUidR1rOUGmcQ1o2tmlDDbdu9E1YpMsxeLUz/XmUs3pCEgobSPpl4XjAMxgJ8uutI2270olh5gJOYPW32eN5ixTpR5Wir+JQYQ== summingbest@gmail.com

2、添加公钥到github页面

进入你的github博客仓库的设置页下面的deploy keys页面
keploy keys页面
看到哪个熟悉的图标了吗?点击一下你就能新建key了,如果不嫌烦的话,还可以删除了再添加(neta科技美学)
随便取个什么标题,将在客户端上复制的公钥粘贴到下面的key里面,勾选Allow write access选项,点add key。密钥对就添加完成了

3、测试

在客户端执行命令ssh -T git@github.com

1
2
[summingyu@localhost .ssh]$ ssh -T git@github.com
Hi summingyu/summingyu.github.io! You've successfully authenticated, but GitHub does not provide shell access.

如果看到上面的结果,那么就说明通了。

4、修改配置文件

最后,修改站点配置文件_config.yml
在上一篇文章hexo搭建自己的博客 中讲到最后添加的一行代码进行如下修改

1
2
3
4
deploy:
type: git
# repo: https://github.com/summingyu/summingyu.github.io.git
repo: git@github.com:summingyu/summingyu.github.io.git

将原来的https链接修改成ssh的链接
进行了以上配置,基本就可以了。
反正我是这样搞好的