以下是最简单的架设git服务的办法:
1、创建git用户:
1 | $ sudo adduser git |
2、设置以authorized_keys为认证方式:
1 | $ cat /tmp/id_rsa.pub >authorized_keys #这里的id_rsa.pub是需要需要git的用户的公钥。可添加多个,逐行添加 |
3、用 –bare 选项运行 git init 来建立一个裸仓库,这会初始化一个不包含工作目录的仓库:
1 | $ cd /opt/git |
4、用 Git 自带的 git-shell 工具限制 git 用户的活动范围:
#只要把它设为 git 用户登入的 shell,那么该用户就无法使用普通的 bash 或者 csh 什么的 shell 程序。编辑 /etc/passwd 文件:
1 | $ sudo nano -w /etc/passwd |
#找到git用户的参数,把最后一个冒号后的 bin/sh 改为 /usr/bin/git-shell (或者用 which git-shell 查看它的实际安装路径)
5、clone测试的project:
1 | git clone git@git.xxx.xxx:/opt/git/project.git |
这样就完成了一个最简单的git服务器的搭建。
ps:如果不是使用git用户创建和操作目录等,请务必通过chown -R git.git *设置这些目录所有者为git用户,否则容易没有权限。
如果提示没有目录,则需要在服务端创建目录并使用git –bare init
初始化目录和git。
push时如果提示权限问题,比如error:pack-objects died of signal 13
那么要注意是不是init的目录权限问题。