在Ubuntu 12.04 上 搭建 Git服务器



http://blog.chinaunix.net/uid-15007890-id-3217101.html



在使用Git之前,大家首先要明确几个概念:git服务器、git客户端和git服务器管理员;



通常,git服务器上需要安装OpenSSH Server、Git、Gitosis和Apache2(如果想使用Gitweb的话)。


一、Git服务端 安装


    1、安装OpenSSH Server


首先,使用ps -e|grep ssh命令,检查本机上是否已经运行ssh服务。如果没有,继续;否则,跳过此步骤。

    执行命令:

    sudo apt-get install openssh-server


root@pb-desktop:~# ps -e|grep ssh
  766 ?        00:00:00 sshd
 2062 ?        00:00:00 ssh-agent
 2400 ?        00:00:00 sshd


     2、修改ssh服务端配置文件/etc/ssh/sshd_config (当前用户为wirror800)


   Port 22 # 修改成你想要的登陆端口,如2222

   PermitRootLogin no # 禁止root用户登陆

   StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的

   RSAAuthentication yes # 启用 RSA 认证

   PubkeyAuthentication yes # 启用公钥认证

   PasswordAuthentication no # 禁止密码认证,默认是打开的

   ServerKeyBits 1024 # 修改后变为此状态,将ServerKey强度改为1024比特

   PermitEmptyPasswords no # 修改后变为此状态,禁止空密码进行登录

 

   修改完成后,重启ssh服务:

   sudo /etc/init.d/ssh restart

   注意:至此,服务端SSH的操作就已经结束了。网上说的“id_rsa文件拷贝到Client端的~/.ssh/目录下,将id_rsa.pub拷贝到

Server端的~/.ssh/目录下,改名为authorized_keys ”其实都是不准确的。id_rsa是使用 ssh-keygen生成的rsa私钥,id_rsa.pub

是同时生成的公钥,服务器端通信使用的秘钥可以应该由服务器管理员来创建和管理,如果你想把当前用户wirror800作为管理

员也是可以的,相关管理员的操作见本文第二部分。不推荐在ubuntu服务器端建立管理员帐号。

    建议大家参考一下OpenSSH的相关内容:http://www.freebsd.org/doc/zh_CN/books/handbook/openssh.html


    3.安装git(当前用户为wirror800)

    apt-get install git-core


    4.安装gitosis(为什么要使用gitosis是大家首先需要明确的问题)(当前用户为wirror800)

获取gitosis安装包;
     
git@zxk:~$ mkdir ~/.gitosis_setop
     
git@zxk:~$ cd ~/.gitosis_setop/
     
git@zxk:~/.gitosis_setop$ git clone git://eagain.net/gitosis.git
      如果这个不行:
      Cloning into 'gitosis'...
      fatal: unable to connect to eagain.net:
      eagain.net[0: 208.78.102.120]: errno=Connection refused

      则可从如下位置clone gitosis包:
      git clone
https://github.com/res0nat0r/gitosis.git
      Cloning into 'gitosis'...
      remote: Counting objects: 727, done.
      remote: Compressing objects: 100% (216/216), done.
      remote: Total 727 (delta 510), reused 701 (delta 495)
      Receiving objects: 100% (727/727), 111.73 KiB | 44 KiB/s, done.
      Resolving deltas: 100% (510/510), done.

安装gitosis包;

      git@zxk:~/.gitosis_setop$ cd gitosis/
     
git@zxk:~/.gitosis_setop/gitosis$ sudo python setup.py install 失败了;

      若报错,可通过如下命令解决:
      git@zxk:wgethttp://peak.telecommunity.com/dist/ez_setup.py
      git@zxk:python ez_setup.py

    5. 为gitosis创建系统用户(当前用户为wirror800)

     sudo adduser --system --shell /bin/sh --gecos 'git SCM user' --group --disabled-password --home /home/git  git

     这种方法是网上比较常见的方法,创建的是一个禁用密码的git用户,但在使用su命令切换git用户的时候,空密码老是

验证失败,大家可以使用下面的方法来创建git用户:

      sudo useradd -m git

      sudo passwd git




























=================

把所有用户的公钥保存在 authorized_keys 文件的做法,只能凑和一阵子,当用户数量达到几百人的规模时,管理起来就会十分痛苦。每次改删用户都必须登录服务器不去说,这种做法还缺少必要的权限管理 — 每个人都对所有项目拥有完整的读写权限。

幸好我们还可以选择应用广泛的 Gitosis 项目。简单地说,Gitosis 就是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本。有趣的是,用来添加用户和设定权限的并非通过网页程序,而只是管理一个特殊的 Git 仓库。你只需要在这个特殊仓库内做好相应的设定,然后推送到服务器上,Gitosis 就会随之改变运行策略,听起来就很酷,对吧?

Gitosis 的安装算不上傻瓜化,但也不算太难。用 Linux 服务器架设起来最简单 — 以下例子中,我们使用装有 Ubuntu 8.10 系统的服务器。

Gitosis 的工作依赖于某些 Python 工具,所以首先要安装 Python 的 setuptools 包,在 Ubuntu 上称为 python-setuptools:

================






你可能感兴趣的:(在Ubuntu 12.04 上 搭建 Git服务器)