不得不吐槽一下,有时候,问人真是一件很恶心的事情,特别是技术上的问题。因为有时候自己一直在捣鼓某个问题,担心自己钻入死胡同,浪费时间,就回想着问问同事吧,问问同行吧,问到知道的还好,问到不知道的也好,问到不知道装知道的那就真是操蛋,,好了,不多说废话了。
原本是想着用Hexo搭建自己的博客的,想想这是好事啊,,就动起手来开搞啦~可是环境各方面都搞好啦~,想想,在公司项目紧哪来那么多时间给你去网上写文章吐槽啊,,,那么就想着把自己的电脑也搭个环境来吧。嗯哼,别比比,动手。

此处顺便写一下真个简单的流程吧~
简介:hexo是一款基于Node.js的静态博客框架

配置环境

  • 安装Node(必须)
    作用:用来生成静态页面的
    到Node.js官网下载相应平台的最新版本,一路安装即可。
  • 安装Git(必须)
    作用:把本地的hexo内容提交到github上去.
    安装Xcode就自带有Git,我就不多说了。
  • 申请GitHub(必须)
    github账号我也不再啰嗦了,没有的话直接申请就行了,跟一般的注册账号差不多,SSH Keys,看你自己了,个人觉得要配,因为我这篇文章主要就是吐槽这个来的。网上有很多教程,但是,我就呵呵。稍后在说一下吧。

正式安装Hexo

Node和Git都安装好后,首先创建一个文件夹,如,用户存放hexo的配置文件,然后进入里安装Hexo。

执行如下命令安装Hexo:

sudo npm install -g hexo

初始化然后,执行init命令初始化hexo,命令:

hexo init

好啦,至此,全部安装工作已经完成!blogName就是你的博客根目录,所有的操作都在里面进行。完成后可以在hexo官网自己查看喜欢的网站风格clone下来改配置网站的文件_config.yml就可以了,这里不详细说。

生成静态页面

hexo generate(hexo g也可以)

启动本地服务,进行文章预览调试,命令:

hexo server

浏览器输入http://localhost:4000

配置Github

建立Repository
建立与你用户名对应的仓库,仓库名必须为【your_user_name.github.io】,固定写法

ex:我的用户名是zhongxuanrui,我的博客仓库名是zhongxuanrui.github.io发布之后博客访问路径就是https://zhongxuanrui.github.io/

建立关联

blogName是之前建的东西也全在这里面,有:
_config.yml    node_modules    public      source

db.json        package.json    scaffolds  themes
对_config.yml进行修改

deploy:
type: git
repo: git@github.com:zhongxuanrui/zhongxuanrui.github.io.git
branch: master

注意: repo的路径是要ssh的路径,不是https的路径

这时候就和git仓库关联起来了。
这时候除了本地,外面还访问不到博客,还需要将它发布出去

所以执行命令:

npm install hexo-deployer-git –save

然后,执行发布命令:

hexo deploy 也可以是 hexo d

每次部署的步骤,可按以下三步来进行。

hexo clean

hexo generate

hexo deploy

一些常用命令:

hexo new “postName” #新建文章
hexo new page”pageName” #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,’ctrl + c’关闭server)
hexo deploy #将.deploy目录部署到GitHub
hexo help # 查看帮助
hexo version #查看Hexo的版本


因为我的电脑本地本身已经存在了早前用的github的账号,现在发布博客是新建的一个github账号,所以只能配置多个ssh了。

  1. cd .ssh
  2. ssh-keygen -t rsa -C “your_email@email.com” 回车回询问输入一个文件名字,默认就是id_rsa
    或者 ssh-keygen -t rsa -C “your_email@email.com” -f ~/.ssh/custom_rsa

修改 ~/.ssh 下的 config 文件
如果没有,可以自己新建一个

配置内容如下:

//#github
Host name_1
HostName github.com
User email@qq.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

//# github
Host name_2
HostName github.com
User email@qq.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_1


以上各字段说明:
Host:主机名字,不能重名(克隆仓库的时候将用这个名字。ex:git@name_1:zhongxuanrui/zhongxuanrui.github.io.git 接下来有情景)
HostName:主机所在域名或IP
User:服务器上的用户名(邮箱)
PreferredAuthentications:不填此行的话,如果pubkey验证不通过可以用密码方式;填了publickey只能通过公钥验证的方式
IdentityFile:私钥路径(一般是在.ssh文件夹下)

检查成功与否

输入命令:ssh -T git@github.com

显示这个说明成功了 Hi zhongxuanrui! You’ve successfully authenticated, but GitHub does not provide shell access.

情景

我们有两个github账号A和B我们如何让两个ssh不互相影响,并且git操作时能智能匹配私钥?

解决方案:

上面的Host字段其实是任意的,git操作时会有一个映射,将Host映射到目标域名或ip(HostName)

所以我们可以这么干:

Host a.github.com
Hostname github.com
User git
Identityfile ~/.ssh/a_github_rsa

Host b.github.com
HostName github.com
User git // 用户名称
IdentityFile ~/.ssh/b_github_rsa
注意:公私钥命名要对应

然后 ssh 的地址要更改一下,比如 A 账号的 repo 仓库原本的地址是

git@github.com:A/repo.git,配置了ssh 后,我们使用

git@a.github.com:A/repo.git

到这里就基本完成了(记得把公钥复制到远端仓库),使用ssh -T a.github.com测试一下吧

然后 回到申请的github账号 配置一下ssh才能真正的关联起来。

打个.ssh文件夹下面刚刚所创建对应名字的密钥,用编辑器打开custom_rsa.pub。复制里面的内容。

新建一个ssh key 这时候就完成了所有的步骤啦~~~