先给大家看个日志:
一定要注意,安全无小事,密码切勿使用安全级别较低的密码。
因为我只是搭建git服务测试,所以使用的密码很简单,他就成功登录上来了。
随后,这个人又尝试了gitlab、emqx、mc等等常用用户名登录。
我是用一台新服务器搭建测试,还好服务器没有什么资料等,而且此用户也是没有root权限的,之所以会发现这个问题还是因为腾讯云的预警。
经过工单咨询和腾讯云工程师进一步确认得知:
1、确认服务器被入侵且存在异常脚本程序。
2、确认服务器内存在挖矿相关病毒程序。
3、确认服务器正在请求高危命令。
以上就不展开说了,所以各位密码一定要使用高强度密码,哪怕是自己忘记需要重置密码,其实这也是变相的定期修改密码。
好了,正文开始:
本地准备
相信大家都会把hexo部署至github,本文的思路是一样的,在云服务器建立git仓库用于存储public代码,然后通过nginx指定此目录来访问。
生成ssh密钥
请确认自己有没有生成ssh密钥,如果没有则执行一下命令:
查看有没有 ~/.ssh 这个文件夹,其中id_rsa.pub则为公钥。
windows用户在:C:\Users\yourname\.ssh
1 | git config --global user.name "你的用户名" |
服务器搭建
root账号操作部分
1、切换到root账号
1 | su root |
如果你登录的就是root账号则无需切换。
2、 安装git
请先检查是否安装git,如果安装了就不用安装了。
执行
git --version
,如果提醒git command not found就是没安装
1 | yum install git |
3、 创建git账户并设置密码
1 | adduser git |
小白提醒:设置密码时,密码时不显示的,不是你键盘坏了。new password后他会提示你再次输入的,也是一样的。
- 赋予权限5、 编辑 /etc/sudoers 文件
1
chmod 740 /etc/sudoers
在1
vim /etc/sudoers
root ALL=(ALL) ALL
下一行加入:6、 把权限改回来1
git ALL=(ALL) ALL
1
chmod 400 /etc/sudoers
git账号操作部分
1、创建.ssh文件夹
1 | su git |
2、创建git密钥
1 | ssh-keygen |
3、复制一份公钥
1 | cp id_rsa.pub authorized_keys |
4、修改权限
1 | chmod 600 ~/.ssh/authorized_keys |
5、上传本地公钥
把本文第一步生成的id_rsa.pub
内容拷贝到服务器的authorized_keys
文件末尾即可。
6、本地cmd测试
你在本地打开命令行工具输入:
1 | ssh -v git@云服务器的公网IP |
免密登录即ok
创建git仓库
注意:这里依然是git账号操作
1、初始化git仓库
创建位置自己选择,我这演示创建在/home/git
下
1 | cd ~ |
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