hexo git免密发布到云服务器


一、配置思路

首先在云服务器上配置git仓库(nginx默认装好的,本文章不写其他东西),然后再本机win10配置ssh证书并且建立信任链接,最后是发布前的配置。

二、服务器配置

我用的是腾讯云服务器centos7

1、安装git环境

1)用xshell连上服务器

2)检查git
git --version

3)安装git

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git
git --version     //验证git

2、创建git用户并配置仓库

1)一行一个命令

useradd git        //创建git用户
passwd git         //设置密码
su git             //切换到git用户
cd /home/git/      
mkdir repos && cd repos
git init --bare blog.git    //创建一个空仓库
cd blog.git/hooks           
vi post-receive             // 创建 hook 钩子函数,输入了内容如下

下面的内容放到post-receive中

#!/bin/sh
git --work-tree=/home/blog --git-dir=/home/git/repos/blog.git checkout -f

2)给刚刚创的文件添加执行的权限
chmod +x post-receive

3)回到root用户,并更改文件夹的属组

su -            //输入密码,回到root用户
mkdir /home/blog             //与post-receive中的work-tree对应,创建博客根目录
chown -R git:git /home/blg    
chown -R git:git /home/git/repos/blog.git 

4)回到本地windows上测试能不能把仓库clone下来

随便找个地方打开cmd,前提是装好git,输入命令测试:
git clone git@server_ip:/home/git/repos/blog.git
看看是不是多了个可爱的blog文件夹

三、本机windows10配置

1)windows要先安装git 官网,安装跟着提示走就好了

2) 安装好后,随便找个地方右键进去git bash
git bash

3)打开后是这个样子的
git bash 控制台

4)以下的命令一行行的输

git config --global user.name "yourname"
git config --global user.email [email protected]
ssh-keygen -t rsa -C "[email protected]"
git config --global core.autocrlf false   // 禁用自动转换,这个不设置后面上传时会出现警告。

5)建立ssh信任关系,这个很重要

ssh-copy-id -i /c/Users/hasee/.ssh/id_rsa.pub git@yourServerIp

根据提示走,然后这里要输一次密码
上面的/c/Users/hasee/.ssh/id_rsa.pub路径是根据4)中的第三行生成的,在控制台输出的内容可以看得到

6)测试ssh免密登录
随便找个地方打开cmd
输入ssh git@yourServerIp回车
测试ssh

四、发布

到这里我们就完成了服务器和本机配置,现在是修改hexo的配置文件,进行远程部署

1、编辑_config.yml文件

找到deploy:
deploy
注意有空格

deploy:
  type: git
  repository: git@yourServerIp:/home/git/repos/blog.git
  branch: master

2、编辑package.json方便发布

添加一些内容

"scripts": {
  "deploy": "hexo clean && hexo g -d",
  "start": "hexo clean && hexo g && hexo s"
},

如果看到 {}分别是{} 不知道为啥被转义了

所以我贴个图片吧,如下

package.json

3、开心快乐的发布

在本地调用就可以用npm start,舒舒服服的,发布命令用npm run deploy

坑:这里我第一次是没有安装部署的插件所以失效,输入命令解决npm install hexo-deployer-git --save

五、结语

感谢大佬们的观看,本人超级小白。至于控制git用户的权限实在是不成功,限制权限候后文章又发布不了,等以后学习更多了再回来配置。有问题的话联系我或者在下面留言哦,虽然还没搞懂这个留言系统怎么用,继续努力吧~

最后如果出了什么问题一定要仔细检查步骤,大不了删了重来,我就是弄了两三次╮(╯﹏╰)╭。


文章作者: xi3w3n
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xi3w3n !
评论
  目录