Hexo Blog优化[01] - Git 搭建

1. 环境

Git的应用已经安装了,检查下账户,发现已经有git了。

1
2
$ cat /etc/passwd | grep git
git:x:973:973:git daemon user:/:/usr/bin/git-shell

2. 为Git建个Home目录吧, 顺便改个密码

1
2
3
4
5
6
$ sudo mkdir /home/git
$ sudo chown git /home/git/
$ sudo usermod -d /home/git git │[wangchi@chh ~]$ sudo usermod -d /home/git git
$ cat /etc/passwd | grep git
git:x:973:973:git daemon user:/home/git:/usr/bin/git-shell
$ sudo passwd git

先换个Shell登陆

现在看着Shell是git-shell,一登陆git就报错了

1
2
3
$ su git
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

好吧,那就换个Shell了:

1
$ sudo usermod -s /usr/bin/bash git

生成ssh密钥,以便免密登陆

1
2
3
4
5
$ su git
$ cd ~
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t ed25519

几个回车下来,密钥就生成了。这里生成ed25519的key主要是比较安全,服务器默认用这个算法。

ssh登陆

开始用密码登陆,ssh老是登不上去,密码都输入正确了, 但仍提示"Permission denied, please try again."。后面发现sshd去掉PAM认证就可以。

不用纠结了,直接用key登陆好了。把客户机的id_ed25519.pub内容添加到git用户的~/.ssh/authorized_keys一行。

建个仓库吧

1
2
3
4
5
6
$ cd ~
$ mkdir -p var/hexo.git
$ cd var/hexo.git
$ git init --bare
$ ls
branches config description HEAD hooks info objects refs

在远程主机创建第一个文件

1
2
3
4
5
6
7
8
$ mkdir hexo
$ cd hexo
$ git init
$ touch readme.md
$ git add *
$ git commit -am "read me"
$ git remote add original ssh://git@www.chhwang.uk:26076/home/git/var/hexo.git
$ git push --set-upsteam original master

好了,git可以工作了。