Hexo部署至云服务器(Git配置)

文章目录

先给大家看个日志:
image
一定要注意,安全无小事,密码切勿使用安全级别较低的密码。

因为我只是搭建git服务测试,所以使用的密码很简单,他就成功登录上来了。
随后,这个人又尝试了gitlab、emqx、mc等等常用用户名登录。
image
我是用一台新服务器搭建测试,还好服务器没有什么资料等,而且此用户也是没有root权限的,之所以会发现这个问题还是因为腾讯云的预警。
image
经过工单咨询和腾讯云工程师进一步确认得知:
1、确认服务器被入侵且存在异常脚本程序。
2、确认服务器内存在挖矿相关病毒程序。
3、确认服务器正在请求高危命令。
以上就不展开说了,所以各位密码一定要使用高强度密码,哪怕是自己忘记需要重置密码,其实这也是变相的定期修改密码。
好了,正文开始:


本地准备

相信大家都会把hexo部署至github,本文的思路是一样的,在云服务器建立git仓库用于存储public代码,然后通过nginx指定此目录来访问。

生成ssh密钥

请确认自己有没有生成ssh密钥,如果没有则执行一下命令:

查看有没有 ~/.ssh 这个文件夹,其中id_rsa.pub则为公钥。
windows用户在:C:\Users\yourname\.ssh

1
2
3
git config --global user.name "你的用户名"
git config --global user.email "你的的邮箱"
ssh-keygen -t rsa -C "你的的邮箱"

服务器搭建

root账号操作部分

1、切换到root账号

1
su root

如果你登录的就是root账号则无需切换。
2、 安装git
请先检查是否安装git,如果安装了就不用安装了。

执行git --version,如果提醒git command not found就是没安装

1
yum install git

3、 创建git账户并设置密码

1
2
adduser git
passwd git

小白提醒:设置密码时,密码时不显示的,不是你键盘坏了。new password后他会提示你再次输入的,也是一样的。

  1. 赋予权限
    1
    chmod 740 /etc/sudoers
    5、 编辑 /etc/sudoers 文件
    1
    vim /etc/sudoers
    root ALL=(ALL) ALL下一行加入:
    1
    git     ALL=(ALL)     ALL
    6、 把权限改回来
    1
    chmod 400 /etc/sudoers

git账号操作部分

1、创建.ssh文件夹

1
2
3
4
su git
cd ~
mkdir .ssh
cd .ssh

2、创建git密钥

1
ssh-keygen

3、复制一份公钥

1
cp id_rsa.pub authorized_keys

4、修改权限

1
2
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

5、上传本地公钥
把本文第一步生成的id_rsa.pub内容拷贝到服务器的authorized_keys文件末尾即可。
6、本地cmd测试
你在本地打开命令行工具输入:

1
ssh -v git@云服务器的公网IP

免密登录即ok

创建git仓库

注意:这里依然是git账号操作

1、初始化git仓库
创建位置自己选择,我这演示创建在/home/git

1
2
cd ~
git init --bare mengblog.git

2、创建git钩子

1
vim ~/mengblog.git/hooks/post-receive

输入以下内容:

1
git --work-tree=/home/git/blog --git-dir=/home/git/mengblog.git checkout -f

这里的目录自行选择,我这里是/home/git/blog
3、设置文件可执行权限

1
chmod +x ~/mengblog.git/hooks/post-receive

配置nginx

这一步只需要修改nginx配置中相应的server服务:

1
root /home/git/blog;

博客配置

其实这里就简单了,和github一样,把_config.yml文件中deploy>repo地址改成:

1
git@云服务器公网IP:/home/git/mengblog.git

然后hexo d就行了

完成

到这里你只需要去访问nginx相应server绑定的域名即可。
在上一步中,hexo d可能会出现被拒绝等问题,如果你按照文章一步一步走的,那可能是在账号使用那一块出现了问题。
注意你的/home/git/blog所有者是不是git,如果不是请修改成git

分享到: