公司最近需要部署git服务器,于是琢磨了一下,过程真是磨人啊。具体就不吐槽了,说一下配置过程。
公司的服务器都是清一色的阿里云服务器,操作系统也都是CentOS,所以只能暂时放弃心中至爱FreeBSD,然而这个服务器的当前标配操作系统让我有各种不适应。
1.首先要做的一件事情就是关闭SELinux,这个问题会引起各种的Permission denied,让我折腾了好久,真是惭愧啊!具体步骤如下:
修改/etc/selinux/config配置文件,找到包含“SELINUX”的一行改成:SELINUX=disabled,这样以后每次系统启动之后就能起作用了;如果你想立即生效,可以临时运行这个命令:
# setenforce 0
但是在系统重启之后就会失效,所以如果永久保存的话,还是修改一下前面所说的配置文件。
2.安装相关的软件,可以根据实际需要增加安装的项目(以下“#”开始的命令是用root用户执行的,“$”开始的命令是用git用户执行的)
# yum install git-core python-setuptools
3.安装gitosis
# git clone https://github.com/res0nat0r/gitosis.git
# cd gitosis
# python setup.py install
4.创建devel用户组和git用户
5.创建用户密钥
# ssh-keygen -t rsa
# cp ~/.ssh/id_rsa.pub /tmp
6.修改~/.ssh/config配置文件,这样可以通过私钥验证登录ssh:
host CentOS65
user root
hostname 192.168.1.244
identityfile ~/.ssh/id_rsa
7.初始化git管理库
# su - git
$ gitosis-init < /tmp/id_rsa.pub
$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
8.测试ssh配置是否正确
# ssh git@CentOS65
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to 192.168.1.244 closed.
SSH_ORIGINAL_COMMAND这个提示说明用户验证已经成功,但是没有指定任何git 命令,所以连接被终止
# git clone git@CentOS65:/gitosis-admin.git
9.修改.gitosis.conf文件
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = root@CentOS65
[group public]
writable = public
members = user
# ssh-keygen -t rsa -C "user" -f user
# cp .ssh/user.pub gitosis-admin/kerpair