服务器使用秘钥登录!

安装宝塔

省略…

创建用户git

1
adduser git

设置权限

使用vim编辑/etc/sudoers

1
vim /etc/sudoers

找到User privilege specification部分,添加如下内容:

1
git     ALL=(ALL:ALL) ALL

设置秘钥

1
2
3
4
5
mkdir -p ~/.ssh #git用户下操作
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys #将服务器的公钥写入文件中

安装Git

1
sudo apt-get install git

新建仓库

git用户操作,如有出现报错使用sudo 即可

1
2
3
4
mkdir /www/git/ 
cd /www/git/
git init --bare blog.git #在/www/git下创建新仓库blog.git
chown git:git -R blog.git #给予git用户权限

在 blog.git/hooks 文件夹下创建一个 post-receive 钩子

1
2
cd blog.git/hooks
vim post-receive

在 post-receive 文件中输入以下代码

1
2
#!/bin/bash 
git --work-tree=/www/wwwroot/hexo --git-dir=/www/git/blog.git checkout -f

授予 post-receive 文件可执行权限

1
chmod +x /www/git/blog.git/hooks/post-receive

创建www/wwwroot/hexo目录,用于Nginx托管(git用户下操作)

1
2
3
4
sudo mkdir -p /www/wwwroot/hexo

sudo chown -R $USER:$USER /www/wwwroot/hexo/ 设置目录所有权
sudo chmod -R 755 /www/wwwroot/hexo/

登录测试

在本地打开一个终端,以 ssh 的方式登录云服务器

1
ssh -v git@你的 ip 地址

因为前边设置好了秘钥登录,只要本地有对应私钥即可实现免密登录。

在hexo的_config.yml中设置:

1
2
3
4
deploy:
type: 'git'
repo: git@服务器ip:/www/git/blog.git
branch: master

最后三连就可 hexo cl && hexo g -d