zoukankan      html  css  js  c++  java
  • 在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:

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






  • 相关阅读:
    redis 持久化
    Hyper-V虚拟机Redhat添加网卡找不到网卡配置文件解决方法
    java 查看ssl log
    iptables配置https防火墙策略
    java 一致性哈希源码 转
    mysql主备配置方法
    hibernate 缓存配置
    Hibernate中文乱码
    HttpPost 中文编码问题 EntityBuilder
    apache 配置tomcat代理
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744555.html
Copyright © 2011-2022 走看看