胖蔡说技术
随便扯扯

Git 服务器配置

SSH连接

1、git下载

$sudo apt-get update
$sudo apt-get install git

2、生成SSH公钥(开发端)

     大多数Git服务器都会选择使用SSH公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的就要需要生成一个。一般SSH公钥默认存储在账户的主目录下的~/.ssh目录。
$ssh-keygen
第一次是让你设置公钥文件的位置和公钥文件名,后面两次是让你甚至公钥连接的密码,可以不设置密码则默认不设置密码。

3、架构服务器(Ubuntu远程服务器端)

     1)创建一个操作git仓库的用户
        $sudo adduser git
      2)创建存放SSH公钥的管理文件
        $su git
        $mkdir ~/.ssh
        $cd ~/.ssh
        $touch authorized_keys
      3)将开发者的SSH公钥添加到git用户的authorized_keys文件中。
        $cat /tmp/id_rsa.pub >> ~/.ssh/authorized
      4)创建一个git裸库
         $mkdir /opt/git
         $cd /opt/git
         $mkdir project.git
         $cd project.git
         $git --bare init
       5)开发者操作提交(管理员)
         $cd project
         $git init
         $git commit -a -m "initial project"
         $git remote add origin git@servername:/opt/git/project.git
         $git push origin master
        6)一般开发者
          $git clone git@servername:/opt/git/project.git
          将项目clone下来就可以对其进行操作了。
        7)限制git用户的活动范围
           若是未禁止git的shell登录权限的话,开发者可通过git用户权限(ssh协议)直接访问服务器$ssh git@servername
           $vi /etc/passwd
            会看到git的用户信息git:x:1002:1002:git,,,,git:/home/git:/bin/bash,将其改为
            git:x:1002:1002:git,,,,git:/home/git:/usr/bin/git-shell
             如此,git用户就只能用ssh连接来推送和获取git仓库,而不能直接使用主机shell.尝试普通SSH登录,会直接拒绝。

公共访问

可以通过匿名的方式对git仓库进行读操作。或许对小型的配置来说最简单的办法就是运行一个静态的web服务。把他的根目录设定为Git仓库所在的位置,然后开启post-update挂钩(每当当前的仓库进行提交更新的时候,server就会执行hooks/post-update脚本命令)。基本步骤如下所示:

1、建立一个git 裸仓库

     $mkdir publicaccess.git
     $cd publicaccess.git
     $git --bare init

2、打开post-update挂钩

     $mv hooks/post-update.sample hooks/post-update
     $sudo chmod a+x hooks/post-update
    git1.6之前版本,可省略mv操作,挂钩加后缀名.sample是之后版本才添加的

3、安装apache2,搭建web环境

     $sudo apt-get install apache2
     $vi /etc/apache2/apache2.conf
      添加一个git裸仓库目录,如:
      +</directory >
      +  Options Indexes FollowSymLinks
      +    AllowOverride None
      +    Require all granted
      +
     $vi /etc/apache2/sites-enabled/000-default.conf
     修改网页根目录,修改如下:
   </virtualhost *:80>
       ServerAdmin webmaster@localhost
  +    ServerName enjoytoday.cn
  +     DocumentRoot /home/git
       ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined

4、设置git仓库权限,并重启apache服务

   $sudo chown -R git:www-data publicaccess.git
   $/etc/init.d/apache2 restart

   重启apache2服务

5、读取git项目

  $git clone http://enjoytoday.cn/publicaccess.git
如此就可成功让人读取你的git项目了
赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Git 服务器配置
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏