在CentOS7上搭建自用Git服务器

创建单独的 git 用户,并切换到新创建的用户。

1
2
3
adduser git
passwd git
su git -

在根目录下创建单独的仓库根文件夹,方便管理。仓库根文件夹要设置为 git 用户所有。

1
2
mkdir /repositories
chown -R git:git /repositories

初始化新的空仓库,仓库名通常都以.git结尾

1
git init --bare /repositories/sample.git

创建公钥用来连接SSH,这里可以直接在客户端生成然后用sftp传输公钥到.ssh文件夹。注意要把.ssh文件夹和authorized_keys文件的权限分别改为700和600,否则无法验证。

1
2
3
4
mkdir /home/git/.ssh
chmod 700 /home/git/.ssh
cat /home/git/.ssh/test_rsa.pub >> /home/git/.ssh/authorized_keys
chmod 600 /home/git/.ssh/authorized_keys

禁止git用户登录Shell,编辑/etc/passwd文件,找到类似以下行

git:x:1001:1001::/home/git:/bin/bash

修改成

git:x:1001:1001::/home/git:/usr/bin/git-shell

接下来就可以使用Url ssh://git@Address:Port/repositories/sample.git 来访问仓库了。