开个新坑,慢慢写
准备
一个RSA密钥对,一台centos服务器,ssl证书(可选)
环境搭建
Windows
- 首先前往Nodejs官网下载nodejs,安装。
- 接着前往Git官网下载git,安装。
- 在
~/.ssh/
下面准备好的你的私钥,同时记下你的公钥 - (
什么你还没有密钥对?那你可以通过来生成你的密钥对1
ssh-keygen -f fileName -t rsa
- 通过来验证你的Nodejs是否安装成功
1
2npm -v
node -v - 接下来使用npm来安装hexo
1
npm install -g hexo-cli
如果不出error,问题都不大 - 初始化hexo博客
1
hexo init blogfoldername
- 使用如下命令来验证hexo雏形
1
2hexo g
hexo s - 如果没有问题你可以在
127.0.0.1:4000
看到初始的hexo博客
CentOS
- 安装并启动nginx
1
2
3
4yum install nginx
systemctl enable nginx
systemctl start nginx
systemctl status nginx这里就摸了 - 新建用户设置密码(yuki为列示用户
1
2useradd yuki
passwd yuki - 把yuki用户添加到sudo用户组中将yuki写入root下面
1
2chmod 740 /etc/sudoers
vi /etc/sudoers保存退出1
2root ALL = (ALL) ALL
yuki ALL = (ALL) ALL回退权限1
chmod 400 /etc/sudoers
- 切换到
yuki
导入ssh公钥1
2
3
4
5
6su yuki
cd ~
mkdir .ssh
vim .ssh/authorized_keys#粘贴上你的密钥然后保存退出
sudo chmod 600 ~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh - 安装git
1
yum install git
- 初始化仓库文件
1
2
3su git
cd ~
git init --bare blog.git - 建一个文件夹用于存放网页
1
2cd ~
mkdir hexo - 修改hook
1
2
3
4vim ~/blog.git/hooks/post-receive
#写入以下内容并且保存退出
git --work-tree=~/home/yuki/hexo --git-dir=/home/yuki/blog.git checkout -f - 赋权接下来来杯咖啡(误
1
chmod +x ~/blog.git/hooks/post-receive
Link
从windows上使用1
ssh -T yuki@yourip
来测试git是否可用,如果出现类似于“welcome”的语句,证明配置成功
在Windows上进入hexo文件夹,找到_config.yml
修改deploy
1
2
3
4deploy:
type: git
repo: yuki@yourip:/home/yuki/blog.git
branch: master
PS:记得安装1
npm install hexo-deployer-git --save
接下来你可以使用1
hexo d
来推送的你的服务器,当然这个时候你还不能访问(nginx还没写
Nginx
这部分就摸了,有详细的看Nginx那篇文章吧
配好了Nginx后,你就可以访问你的blog了
其他
为了安全考虑,禁用yuki用户的SHELL 登录权限配置
这样yuki用户就只能用来执行脚本,无法切换到shell界面。
首先你必须确保 git-shell
已存在于 /etc/shells
文件中
使用命令1
which git-shell
判断系统是否安装了git-shell
。如果已经安装,则返回git-shell
的安装目录,如:/usr/bin/git-shell
;如果未安装则需要安装git-shell
命令,安装命令:1
yum install git
判断shells
文件是否存在,判断命令:1
cat /etc/shells
如果文件不存在或没有/usr/bin/git-shell
,则需要使用vim增加这个路径:1
sudo vim /etc/shells
,在最后一行添加git-shell
路径1
2
3
4
5
6
7
8# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/usr/bin/git-shell # 添加你的git-shell
现在你可以使用 chsh
命令修改任一系统用户的shell权限了
现在我们修改创建的yuki用户的登录权限,禁止yuki用户使用shell权限:
终端中输入1
sudo chsh yuki
然后在Login Shell [/bin/bash]:
后输入git-shell
路径/usr/bin/git-shell
修改完成后验证: vim /etc/passwd找到类似git:x:1000:1000:,,,:/home/yuki:/usr/bin/git-shell
,看看yuki用户是否是以git-shell
结尾
这样,yuki用户就只能使用SSH连接对Git仓库进行推送和拉取操作,而不能登录机器并取得普通shell命令