服务器Hexo博客部署和Git同步
目录
安装hexo
|
|
搭建git服务器
安装git环境
|
|
创建git用户
|
|
创建git仓库
|
|
创建钩子函数
|
|
测试git仓库
|
|
配置SSH免密登录
客户端(Windows这边)
方法一
git bash
中生成git客户的的公私密钥对
|
|
会在C:\Users\用户名
下生成一个.ssh
中生成密钥对,复制公钥id_rsa.pub
中的内容,准备粘贴到下面创建的authorized_keys
文件中
方法二
-
生成密钥对
1
ssh-keygen -t rsa -C "youremail@example.com"
-
将公钥传送给服务器
1 2 3 4 5
# ssh 使用的是22端口 ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip # ssh 使用的非22端口 ssh-copy-id -p 'port' -i ~/.ssh/id_rsa.pub username@server_ip
服务器(Linux这边)
-
编辑
/etc/ssh/sshd_config
文件开启免密登录1 2 3 4 5
RSAAuthentication yes PubkeyAuthentication yes # 配置修改完重启ssh服务 service sshd restart
-
创建指定用户目录下
authorized_keys
1 2 3 4 5 6 7 8 9 10
cd /home/git/.ssh # 存放客户端的ssh公钥 id_rsa.pub touch authorized_keys # 粘贴客户端公钥 # 配置权限 chmod 600 authorized_keys chmod 700 ~/.ssh # 权限给的太大可能会失败? SSH不允许.ssh目录权限过大?
-
限制git用户登录权限, 只能clone, push;
1 2 3 4 5 6
# 查看`git-shell`是否在登录方式里面,有则跳过 cat /etc/shells # 查看是否安装 which git-shell vi /etc/shells # 添加(which git-shell)显示出来的路劲,通常在 /usr/bin/git-shell
修改
/etc/passwd
中的权限1 2 3 4
# 将原来的 git:x:1000:1000:,,,:/home/git:/bin/bash # 修改为: git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
配置nginx
nginx.conf配置文件内容:
|
|
选择主题
选择一个下载到本地
选择NexT
启动
|
|
遇到的问题
-
ERROR Deployer not found: git
报错需要安装
hexo-deployer-git
模块:npm install hexo-deployer-git --save
确认配置文件
_config.yml
中是否添加git仓库信息:1 2 3 4
deploy: type: git repo: ssh://git@server_ip:port/home/git/repos/blog.git branch: master
-
yum
安装nodejs
后没有安装npm
1 2 3 4 5 6 7
# 指定仓库地址 curl --silent --location https://rpm.nodesource.com/setup_10.x | bash - # 再安装 yum install -y nodejs # 切换至国内的源(如果是过内服务器的话) npm install -g cnpm --registry=https://registry.npm.taobao.org